我试图在用户点击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
});
});
答案 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();
});