[英]jQuery click() still being triggered after .clickable class is removed
[英]Jquery class removed after link click, but second click is still recognized
我有一个小问题。 我正在尝试使用Jquery load()
函数在使用AJAX的页面上加载内容。 加载内容后,第二次点击链接,我需要加载内容以进行滑动/隐藏; 当单击同一链接3次以上时,我只需要切换已加载的内容显示,因为它已经被加载一次。
我的问题是,单击链接一次后,我删除了loadable
类,但是第二次单击该函数,就好像该类仍然存在一样。 这是我的HTML:
<a title="Food" id="food" class="loadable" href="get-taste/food">Food</a>
<div class="food_load_space"></div>
链接触发加载,数据加载到.food_load_space
。 这是我的JS:
$(document).ready(function(){
$('a.loadable').click(function(){ //executed upon link click 1;
url = $(this).attr('href');
linkid = $(this).attr('id');
toload = url + ' #content-area';
//now, remove loadable, add loaded and expanded
$(this).removeClass('loadable');
alert(toload);
$('.' + linkid + '_load_space').load(toload);
return false;
}); //kill loadable
我还计划添加.expanded类和.loaded
类,以便脚本知道链接处于哪种状态。但是,即使.loadable
类消失了,也会发生此函数触发的情况。
该事件已绑定到该元素,您需要手动将事件与相关元素解除绑定 。 这可以通过调用$(this).unbind('click');
来完成$(this).unbind('click');
。
您可能还希望检查元素是否在事件函数中具有类。
处理程序绑定到元素而不是选择器。
method to bind it. 如果只希望单击它存在,请使用one()
方法进行绑定。
$('a.loadable').one('click', function(){
// and so on...
第一次单击后,它将自动解除绑定。
识别您的第二次单击的原因是因为jQuery已经将操作绑定到您的元素。 您不能仅通过删除类来取消绑定事件。 该类仅用于帮助您选择该元素(并设置您的元素的样式)。
要删除事件绑定,请在您的click函数中执行以下操作:
$('a.loadable').click(function() {
...your other code...
$(this).unbind('click');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.