如何删除onclick函数并通过jquery使用相同的函数启用它?

时间:2013-02-28 18:52:05

标签: jquery onclick disable-link

我有以下代码。我想要实现的是当我点击1时它会禁用1 onclick功能并且剩余需要可用。当我点击2时,1和3需要onclick功能但是2不需要它。

我需要实现像分页一样。我怎么能这样做。

<div class="test">
  <a href="javascript:void(0);" onclick="test1(1);">1</a>
  <a href="javascript:void(0);" onclick="test1(2);">2</a>
  <a href="javascript:void(0);" onclick="test1(3);">3</a>
</div>

function test1(val)
  {
    $(this).attr('onclick','').unbind('click');
            alert("hai");
  }

但我每次都会收到警报。

2 个答案:

答案 0 :(得分:1)

我想你想在最后点击的按钮上禁用该功能。你可以这样做:

<div class="test">
  <a href="javascript:void(0);" onclick="test1(1);">1</a>
  <a href="javascript:void(0);" onclick="test1(2);">2</a>
  <a href="javascript:void(0);" onclick="test1(3);">3</a>
</div>

的Javascript

var lastClickedInt;
function test1(val)
  {
    if (val !== lastClickedInt) {
        lastClickedInt = val;
        alert("hai");
    }
  }

答案 1 :(得分:-1)

最好的方法是使用类和事件委派:

<div class="test">
  <a href="javascript:void(0);" onclick="test1(1);">1</a>
  <a href="javascript:void(0);" onclick="test1(2);">2</a>
  <a href="javascript:void(0);" onclick="test1(3);">3</a>
</div>

$('div.test').on('click','a',function(e) {
  if(!$(this).hasClass('disabled')) {
    //you're event delegation code
  }

  //disable this link and "enable" it's siblings
  $(this).addClass('disabled').siblings().removeClass('disabled');
});