我有一些fbutton
类的元素。如何仅将click元素绑定到单击的元素。我有这样的代码:
$('.fbutton').click(function() {
/*
Some Code 1
*/
$(this).next().click();
/*
Some Code 2
*/
enough;
});
$(this).next().click();
行会触发对元素的点击,但也会触发所有其他fbutton
元素(此部分困扰我)。
首先想到的解决方案是在 Some Code 2 之后的结束脚本处理。作为回归;不起作用,我使用非法的JavaScript代码导致代码执行异常结束。 可行,但这不是结束执行的正确方法。如何结束javascript执行或如何仅针对单击的元素触发事件。
更多澄清
我只想点击.fbutton来触发。 那么jquery是否识别出被点击的元素? 此外,我无法为任何.fbutton元素定义任何类,因为触发器应该依赖于用户点击。
答案 0 :(得分:2)
您是否尝试过使用stopPropagation?
$('.fbutton').on('click',function(e){
e.stopPropagation();
$(this).next().trigger('click');
});
答案 1 :(得分:1)
onclick给它一个类,并将点击触发绑定到它。
$('.fbutton').on('click',function() {
// Code 1
$(this).hasClass('clicked')) ? $(this).next().trigger('click') : $(this).addClass('clicked');
// Code 2
});
另外,使用jQuery vs $?我保持一致,但是如果你可以使用$我推荐它。
修改强>
澄清我的答案:
这是一个三元if声明。它会检查点击的项目是否具有clicked
类,如果是,则会将您想要的点击分配给$(this).next()
,但如果它没有该类,则会添加class(尚未绑定click语句)。当再次单击该元素时,它将具有类clicked
,因此它应该触发。
这使您只能将点击事件绑定到已经点击过的元素。
第二次编辑
Here is a jsFiddle to show it works
单击示例一次,但不会发生任何事情,但添加该类,再次单击它会触发单击下一个按钮,但不会触发任何其他按钮。对于第二个按钮也是如此,因此您可以看到它们是每个配对的单独事件,与任何其他按钮对无关。