Jquery 回弹相同功能
我想通过live()方法将元素与函数绑定。 该函数仅在第一次执行时表现良好。 我认为我必须从任何事件中解除此元素的绑定,并恢复相同的功能,但我不知道如何做到这一点 代码如下:Jquery 回弹相同功能,jquery,live,die,Jquery,Live,Die,我想通过live()方法将元素与函数绑定。 该函数仅在第一次执行时表现良好。 我认为我必须从任何事件中解除此元素的绑定,并恢复相同的功能,但我不知道如何做到这一点 代码如下: var temp = function() { var htmlEx = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."; $('#template_loading').fadeIn(); $('#template_loadin
var temp = function() {
var htmlEx = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
$('#template_loading').fadeIn();
$('#template_loading').queue(function() {
$('#tp_prev').html(htmlEx);
$('#template_container').removeClass("cur_temp");
$('#template_container').addClass("cur_prev");
$('#template_container').animate({"margin-left" : "0"}, 400, 'easeOutExpo');
$('#template_container').queue(function() {
$('#template_loading').fadeOut();
$('#tp_cur').empty();
$('#template_container').removeClass("cur_prev");
$('#template_container').addClass("cur_temp");
$('#tp_prev').empty();
$('#tp_cur').html(htmlEx);
$('#tp_cur').queue(function() {
$('#prev.pers_arrow').die();
$('#prev.pers_arrow').live("click", temp);
$(this).dequeue();
});
$(this).dequeue();
});
$(this).dequeue();
});
};
$('#prev.pers_arrow').live("click", temp);
第一条:永远不要这样做。 你必须缓存你的数据,不要一直跳入dom 秒: 在我看来,live已被弃用-因此您可以使用打开和关闭 试试看:
var prev=$("#prev");
var pers_arrow=".pers_arrow";
var temp = function() {
var htmlEx = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
var template_loading=$('#template_loading');
template_loading
.fadeIn()
.queue(function() {
$('#tp_prev').html(htmlEx);
var template_container=$('#template_container');
template_container
.removeClass("cur_temp")
.addClass("cur_prev")
.animate({"margin-left" : "0"}, 400, 'easeOutExpo')
.queue(function() {
template_loading.fadeOut();
template_container.removeClass("cur_prev").addClass("cur_temp");
$('#tp_prev').empty();
//you can don't use it - because .html() method already will clean container
//$('#tp_cur').empty();
$('#tp_cur').html(htmlEx).queue(function() {
prev.off("click",pers_arrow,temp).on("click",pers_arrow,temp);
$(this).dequeue();
});
$(this).dequeue();
});
$(this).dequeue();
});
};
prev.off("click",pers_arrow,temp).on("click",pers_arrow,temp)
那代码没有意义!删除事件,然后再次添加,函数的回调将自身添加为回调。哈不,您通常不必删除和添加事件侦听器来多次运行它们。函数本身可能有问题。如果您详细说明实际问题,您试图实现什么,并解释此代码应该做什么以及它的作用,我们可以更好地帮助您。包括一个演示会更好。