Javascript 如何仅将单击触发器绑定到单击的元素?
我有一些元素具有Javascript 如何仅将单击触发器绑定到单击的元素?,javascript,jquery,Javascript,Jquery,我有一些元素具有fbutton类。如何将click元素仅绑定到clicked元素。我有这样一个代码: $('.fbutton').click(function() { /* Some Code 1 */ $(this).next().click(); /* Some Code 2 */ enough; }); $(th
fbutton
类。如何将click元素仅绑定到clicked元素。我有这样一个代码:
$('.fbutton').click(function() {
/*
Some Code 1
*/
$(this).next().click();
/*
Some Code 2
*/
enough;
});
$(this).next().单击()代码>行触发对某个元素的单击,但也会触发所有其他fbutton
元素(这部分让我很烦恼)
想到的第一个解决方案是在一些代码2之后结束脚本处理。作为回报;不工作,我使用了非法的javascript代码,导致代码执行异常结束它有效,但它不是结束执行的正确方法。如何结束javascript执行,或者如何仅为单击的元素触发事件
更多澄清
我只想点击.fbutton来触发那么jquery是否识别单击的元素呢?我也不能为任何.fbutton元素定义任何类,因为触发器应该取决于用户单击。单击给它一个类,并将单击触发绑定到它
$('.fbutton').on('click',function() {
// Code 1
$(this).hasClass('clicked')) ? $(this).next().trigger('click') : $(this).addClass('clicked');
// Code 2
});
另外,使用jQuery vs$?我为您保持了一致性,但如果您可以使用$,我推荐它
编辑
为了澄清我的答案:
这是一个三元if语句。它检查单击的项目是否有一个类clicked
,如果有,则它会将单击分配给$(this).next()
,但如果它还没有该类,则会添加该类(尚未绑定click语句)。当再次单击该元素时,它将单击类,
,因此它应该会触发
这允许您仅将单击事件绑定到已单击的元素
第二次编辑
单击一次example,除了添加类之外,什么都不会发生,再次单击它,它将触发单击next按钮,但不会触发任何其他操作。第二个按钮也是如此,因此您可以看到它们是每个配对的独立事件,与任何其他按钮配对无关。您尝试过使用StopperPagation吗
$('.fbutton').on('click',function(e){
e.stopPropagation();
$(this).next().trigger('click');
});
每次都使用“$”符号而不是jQuery是常见的做法。我知道,为了安全起见,我使用jQuery。这样做实际上是有害的,因为它会阻止您看到争用(编写良好的代码没有)。如果由于插件管理不善或其他原因导致争用,您的代码将使用$
中断,这将迫使您进行修复。谢谢,但我想知道Yii framework为什么使用jQuery语句?不确定,但我可以告诉您$
工作正常=>请澄清您的答案好吗?我希望这已经足够澄清了,但是如果你需要更多,请告诉我。谢谢@plantheidea,但它不起作用。因为这个场景将对所有其他fbutton元素重复。哦,我误解了,您只需要某些.fbutton
元素来触发它,这就是您的意思吗?因为这实际上是不可能的,所以只需将另一个类添加到所需的特定项并触发基于该另一个类的单击
绑定就更容易了。我只希望单击.fbutton来触发。那么jquery不识别单击的元素?我也不能为任何.fbutton元素定义任何类,因为触发器应该依赖于用户单击。