Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery UI选项卡-为通过ajax加载的选项卡重新绑定事件_Javascript_Jquery Ui_Jquery - Fatal编程技术网

Javascript JQuery UI选项卡-为通过ajax加载的选项卡重新绑定事件

Javascript JQuery UI选项卡-为通过ajax加载的选项卡重新绑定事件,javascript,jquery-ui,jquery,Javascript,Jquery Ui,Jquery,当通过ajax加载选项卡时,是否有适当的方法在jQueryUI中重新绑定事件。例如,在下面的代码中,成功事件调用了一个“initBinding()”函数,该函数为不同的类设置了一些自定义的单击事件处理程序。问题是,当我切换标签很多次,然后触发一个点击事件时,我会得到一些奇怪的屏幕闪烁效果。如果我刷新整个页面,然后直接转到单击事件,它不会闪烁。所以我认为它与多次绑定有关 如果我从成功事件中取出'initBinding()'方法,那么通过ajax加载的任何选项卡都不会触发我设置的任何事件。有没有标准

当通过ajax加载选项卡时,是否有适当的方法在jQueryUI中重新绑定事件。例如,在下面的代码中,成功事件调用了一个“initBinding()”函数,该函数为不同的类设置了一些自定义的单击事件处理程序。问题是,当我切换标签很多次,然后触发一个点击事件时,我会得到一些奇怪的屏幕闪烁效果。如果我刷新整个页面,然后直接转到单击事件,它不会闪烁。所以我认为它与多次绑定有关

如果我从成功事件中取出'initBinding()'方法,那么通过ajax加载的任何选项卡都不会触发我设置的任何事件。有没有标准/更好的方法来处理这样的绑定事件

$(document).ready(function () {
    $("#tabs").tabs({
        select: function (event, ui) {
            var tabID = "#ui-tabs-" + (ui.index + 1);
            $(tabID).html("<b>Fetching Data....Please wait....</b>");
        },
        ajaxOptions: {
            error: function (xhr, status, index, anchor) {
                $(anchor.hash).html("Could not load tab data");
            },
            success: function (xhr, status, index, anchor) {
                initBinding();
            }
        }
    });
});
function initBinding() {
    $(".editButton").click(function () {
        //event logic...
    });
}
$(文档).ready(函数(){
$(“#制表符”)。制表符({
选择:功能(事件、用户界面){
var tabID=“#ui选项卡-”+(ui.index+1);
$(tabID).html(“正在提取数据…请稍候…”);
},
ajaxOptions:{
错误:函数(xhr、状态、索引、锚定){
$(anchor.hash).html(“无法加载选项卡数据”);
},
成功:功能(xhr、状态、索引、锚定){
initBinding();
}
}
});
});
函数initBinding(){
$(“.editButton”)。单击(函数(){
//事件逻辑。。。
});
}
您应该使用jQuery的

现在和将来,为与当前选择器匹配的所有元素将处理程序附加到事件

在代码中:

$(".editButton").click(function () {
将成为

$(".editButton").live('click', function () {
使用此技术,您可以完全删除
initBinding()
函数,并在onready函数中使用
.live()
语句

现在和将来,为与当前选择器匹配的所有元素将处理程序附加到事件

在代码中:

$(".editButton").click(function () {
将成为

$(".editButton").live('click', function () {

使用此技术,您可以完全删除
initBinding()
函数,并在onready函数中使用
.live()
语句。

是否有类似的机制将类绑定到jquery ui方法?例如,如果我有$('div.accordion').accordion();。如果我通过ajax加载一个带有“accordion”类的div的页面,则不会加载accordion效果。是否有一种类似于live()的方法可以在这种情况下工作?从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。是否有类似的机制将类绑定到jquery ui方法?例如,如果我有$('div.accordion').accordion();。如果我通过ajax加载一个带有“accordion”类的div的页面,则不会加载accordion效果。是否有一种类似于live()的方法可以在这种情况下工作?从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。