在AJAX加载后重新准备好事件

时间:2015-08-27 21:16:35

标签: jquery ajax

我试图在用户点击sss之后重新启动#mail-wrap就绪事件,该事件使用AJAX加载到另一个页面中。但是,事件并没有重新开始。关于我在这里做错了什么的想法?

jQuery(document).ready(function($) {

    function sss() {
        $('.slider').sss({
            speed: 5000
        });
    }

    // User event
    $('#mail-wrap').on('click', function(e) {
        e.preventDefault();

        sss();
    });

    $('.slider').sss({
        speed: 5000
    });

});

1 个答案:

答案 0 :(得分:1)

与任何其他事件一样,可以明确触发就绪事件:

$(document).trigger('ready');

更优雅的解决方案是,而不是使用' ready'在文档上的事件,将您的代码放在一个单独的函数中,然后调用它。

编辑:这是一个更完整的实现。添加.off()是不必要的,并且设计方面非常不优雅,但是两次声明.on()也不应该是必需的。

// Moved this outside of the .ready event
function sss() {
    $('.slider').sss({
        speed: 5000
    });
}
// Moved the rest of our implementation outside as well
function initialize() {

    // Added a .off() to reset the event (shouldn't be necessary, optional)
    $('#mail-wrap').off().on('click', function(e) {
        e.preventDefault();
        sss();
    });

    sss();
}

$(document).ready(function() {

    // Call it once on document ready, and we can re-initialize anytime we want.
    initialize();

});