Цикл для создания вкладок jQuery

0

Я пытаюсь создать алфавит на основе вкладок, установленный сотрудниками в базе данных, таким образом, он не будет набором az, а динамически построен на основе сотрудников в базе данных. вот запрос:

<cffunction name="ALPHA_RL" access="remote" returnformat="JSON" returntype="any"  >
        <cfargument name='DEPTMATRICSID' required='true' />
        <cfset retVal = ArrayNew(1)>
        <cfquery datasource="#request.DSN#" username="#request.User#" password="#request.Password#" name="getAlphaList">
                SELECT DISTINCT ALPHA FROM (
                SELECT SUBSTR(A.LAST_NAME, 1, 1) As ALPHA
                FROM WEBSCHEDULE.APPLICATION_USER A, WEBSCHEDULE.FACULTYHISTORY H, WEBSCHEDULE.FACULTYTABLE T
                WHERE A.EMPLID = H.FACULTYEMPLID
                AND A.EMPLID = T.EMPLID
                AND H.DEPTMATRICSID = #ARGUMENTS.DEPTMATRICSID# )
                WHERE ALPHA IS NOT NULL
                ORDER BY ALPHA
        </cfquery>
        <cfloop query="getAlphaList">
            <cfset temp = {} />
            <cfset temp['ALPHA'] = getAlphaList.ALPHA />
            <cfset ArrayAppend(retval, temp)>
        </cfloop>
        <cfset result = {} />
        <cfset result['items'] = retVal />

        <cfreturn result>
    </cffunction>

Это работает хорошо и возвращает требуемые данные ниже:

{"items":[{"ALPHA":"A"},{"ALPHA":"B"},{"ALPHA":"C"},{"ALPHA":"F"},{"ALPHA":"G"},{"ALPHA":"H"},{"ALPHA":"J"},{"ALPHA":"L"},{"ALPHA":"M"},{"ALPHA":"N"},{"ALPHA":"O"},{"ALPHA":"P"},{"ALPHA":"R"},{"ALPHA":"S"}]}

Теперь, где я столкнулся с проблемой на моей странице html, я создал функцию, и цикл забросил приведенные выше результаты для построения html для вкладок:

function alphaTabs(d){
$.ajax({
    url: "CFCs/ManageUserProfiles.cfc",
    dataType: "json",
    data: {
        method: "ALPHA_RL",
        DEPTMATRICSID: d
    },
    success: function(response){
        var x = response.items;
        var str = '';
        if (response.items[0] != undefined) {

            str += '<ul>';
            for (var i = 0; i < x.length; i++) {
                str += '<li><a href="#alphaTabz-' + x[i].ALPHA + '">' + x[i].ALPHA + '</a></li>';
            }
            str += '</ul>';
            for (var j = 0; j < x.length; j++) {
                str += '<div id="alphaTabz-' + x[j].ALPHA + '">';
                str += '<p>' + j + '</p>';
                str += '</div>';
            }

        }
        $('#displayAlphaList').append(str);
    },
    error: function(data){
    }
});
}

Вот как я вызываю вкладки jquery в документе document.ready:

$('#displayAlphaList').tabs();
var d = '<cfoutput>#session.ad.AppDeptID#</cfoutput>';
alphaTabs(d)

Созданный html отлично, но вызов функции $ ('# displayAlphaList'). Tabs() не распознает вкладки, поэтому он выглядит как простой HTML-код, а вкладки не создаются. Заранее спасибо за любую проницательность, с которой вы можете мне помочь.

Теги:
jquery-ui-tabs
cfc
coldfusion-10

1 ответ

1
Лучший ответ

Вы вызываете $ ('# displayAlphaList'). Tabs() ПЕРЕД созданием вкладок.

Вам нужно позвонить $('#displayAlphaList').tabs(); в конце вашей "успешной" функции.

function alphaTabs(d){
$.ajax({
    url: "CFCs/ManageUserProfiles.cfc",
    dataType: "json",
    data: {
        method: "ALPHA_RL",
        DEPTMATRICSID: d
    },
    success: function(response){
        var x = response.items;
        var str = '';
        if (response.items[0] != undefined) {
            str += '<div id="displayAlphaList">'
            str += '<ul>';
            for (var i = 0; i < x.length; i++) {
                str += '<li><a href="#alphaTabz-' + x[i].ALPHA + '">' + x[i].ALPHA + '</a></li>';
            }
            str += '</ul>';
            for (var j = 0; j < x.length; j++) {
                str += '<div id="alphaTabz-' + x[j].ALPHA + '">';
                str += '<p>' + j + '</p>';
                str += '</div>';
            }
            str += '</div>';
        }
        $('#alphaList').html(str);
        $('#displayAlphaList').tabs();
    },
    error: function(data){
    }
});
}
  • 0
    ИДЕАЛЬНЫЙ! Я мучаюсь в течение 6 часов, и я получаю ответ за 7 минут. Спасибо NewBoyHun !!!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню