重置jQuery one()以便它再次触发

bre*_*ine 4 jquery

我在one()事件处理程序上使用jQuery 方法触发一次然后取消注册自己.就像是:

$(".main").one('mousedown', '.resizeBar', function (e) { /* my code */ });
Run Code Online (Sandbox Code Playgroud)

然后一些ajax(实际上,.net回发)重置了大部分页面(没有重新加载),我想再次设置事件处理程序.有没有办法重新设置one()事件处理程序再次处于活动状态?以这种方式手动重新触发它不起作用,显然:

$(".main .resizeBar").trigger("mousedown");
Run Code Online (Sandbox Code Playgroud)

hac*_*ack 15

只需将该代码包装在一个函数中

function mainMouseDownOne() {
    $(".main").one('mousedown', '.resizeBar', function (e) { /* my code */ });
}

$(document).ready(function(){
    mainMouseDownOne();

    .ajax({
        ...
        success: function() {
            ...
            mainMouseDownOne();
        }
    })
});
Run Code Online (Sandbox Code Playgroud)