无法在jQuery中的选项卡上动态调用select事件

时间:2012-06-18 17:32:34

标签: jquery jquery-ui

我已经使用jQuery API创建了标签,并使用以下代码在第二个标签的点击上绑定了一个事件处理程序:

    $('#tabs').bind('tabsselect', function(event, ui) {
        refreshRemoveUI(event,ui);
    });

function refreshRemoveUI(event,ui) {
    if(ui.index==1){
        $.get('FrontServlet?operation=getAllQues',function(data) {
            var html = "";
            var questionsNum = data.split(",");
            if(questionsNum!="") {
                html += '<br/><input type=checkbox name=removeAllQuestionId id=removeAllQuestionId onclick="toggleAll(this.checked)"/> Select/Deselect All<br/>';
                for(var i=0;i<questionsNum.length;i++){
                    html += '<br/><input type=checkbox name=removeQuestionId id=removeQuestionId /> ' + questionsNum[i];
                }
                $('#remove').show();
            } else {
                $('#remove').hide();
                html = 'No question available in quiz';
            }
            $('#removequestions').html(html);
            });         
    }
}

我想在完成ajax请求时调用相同的绑定事件,以下是我尝试但没有运气:

    $.get('FrontServlet?operation=remove&position='+val, function(data) {
        $("#tabs li.ui-state-default:nth(1)").trigger("select");

    });

任何想法的人?

2 个答案:

答案 0 :(得分:0)

看起来您正在尝试调用ajax加载后要选择的选项卡(在本例中为第二个选项卡)。你为什么不在你的ajax电话中使用它?

$('#tabs').tabs("select", 1);

希望有所帮助!

答案 1 :(得分:0)

似乎没有任何建议可行 我不得不重构我的代码如下:

    $('#tabs').bind('tabsselect', function(event, ui) {
        if(ui.index==1){
            refreshRemoveUI(event,ui);
        }

    });

            $.get('FrontServlet?operation=remove&position='+val, function(data) {
                refreshRemoveUI();

            });

function refreshRemoveUI(event,ui) {
        $.get('FrontServlet?operation=getAllQues',function(data) {
            var html = "";
            var questionsNum = data.split(",");
            if(questionsNum!="") {
                html += '<br/><input type=checkbox name=removeAllQuestionId id=removeAllQuestionId onclick="toggleAll(this.checked)"/> Select/Deselect All<br/>';
                for(var i=0;i<questionsNum.length;i++){
                    html += '<br/><input type=checkbox name=removeQuestionId id=removeQuestionId /> ' + questionsNum[i];
                }
                $('#remove').show();
            } else {
                $('#remove').hide();
                html = 'No question available in quiz';
            }
            $('#removequestions').html(html);
            });         
}

现在我得到了我想要的结果。