1

我有一些有fbutton课的元素。如何仅将单击元素绑定到单击的元素。我有这样的代码:

    $('.fbutton').click(function() {

        /*
            Some Code 1
        */
            $(this).next().click();
        /*
            Some Code 2
        */
            enough;
    });

$(this).next().click();line 会触发对元素的单击,但也会fbutton触发所有其他元素(这部分让我感到困扰)。

想到的第一个解决方案是在Some Code 2之后结束脚本处理。作为回报;不起作用,我使用了导致代码执行异常结束的非法 javascript 代码。它有效,但它不是结束执行的正确方法。如何结束 javascript 执行或如何仅为单击的元素触发事件。


更多
说明我只想点击 .fbutton 触发。那么jquery会识别点击的元素吗?我也不能为任何 .fbutton 元素定义任何类,因为触发器应该取决于用户点击。

4

2 回答 2

2

您是否尝试过使用 stopPropagation?

$('.fbutton').on('click',function(e){
    e.stopPropagation();
   $(this).next().trigger('click'); 
});
于 2013-05-01T15:50:55.083 回答
1

onclick 给它一个类,并将点击触发绑定到它。

$('.fbutton').on('click',function() {

    // Code 1

    $(this).hasClass('clicked')) ? $(this).next().trigger('click') : $(this).addClass('clicked');

    // Code 2

});

另外,使用 jQuery 与 $? 我为你保持一致,但如果你可以使用 $ 我推荐它。

编辑

为了澄清我的答案:

这是一个三元 if 语句。它检查单击的项目是否具有类clicked,如果是,则将单击分配给您想要$(this).next()的类,但如果它还没有该类,则添加该类(尚未绑定单击语句)。再次单击该元素时,它将具有 class clicked,因此它应该触发。

这允许您仅将单击事件绑定到已单击的元素。

第二次编辑

这是一个 jsFiddle 来展示它的工作原理

单击示例一次,除了添加类之外什么都不会发生,再次单击它会触发单击下一个按钮,但不会发生其他任何事情。第二个按钮也是如此,因此您可以看到它们是每个配对的单独事件,与任何其他按钮对无关。

于 2013-05-01T14:35:01.497 回答