jQuery按钮单击问题

时间:2013-05-26 07:48:49

标签: jquery button

我有一些代码html:

    <button>click 1</button>
    <button>click 2</button>

和jQuery代码:

    jQuery(document).ready(function(){
        $("button").click(function(){
            console.log('yeah');
            $(this).siblings().on('click');
            $(this).off('click');
        });
    });

我想要的东西:

  • 首先,点击按钮1 “是的”
  • 其次,再次点击按钮1 ,没有任何反复发生
  • 按钮1 (非按钮2)再次说“是”,点击按钮2 会很高兴然后回来 点击按钮1

它也是相同的,而不是第一次,我点击按钮2
但我想知道为什么它不起作用。

1 个答案:

答案 0 :(得分:2)

您可能正在寻找: -

$(document).ready(function(){
        $("button").on('click', handleClick);
    });
function handleClick()
{
     $(this).siblings().on('click', handleClick);
     $(this).off('click');
     console.log('yeah');
}

Fiddle

另一种方法是使用one

 $(document).ready(function(){
    $("button").one('click', handleClick);
});
function handleClick(e)
{
    e.stopImmediatePropagation();
     $(this).siblings().one('click', handleClick);
     console.log('yeah');
}

更新以避免多次点击: -

Fiddle

$(document).ready(function () {
    $("button").on('click', handleClick);
});

function handleClick(e) {
    $(this).off('click').siblings().off('click').on('click', handleClick); //turn off the handler attached to the siblings (during initial load) before attaching it again.

    console.log('yeah');
}