2013-11-27 61 views
-1
<script> 
$(document).ready(function() 
{ 
$("[id^=column]").unbind('click',popup); 
}); 

function popup() 
{ 
    alert('gggg'); 
} 

function enable() 
{ 
    $("[id^=column]").bind('click',popup); 
} 
</script> 

<a onclick="enable()">enable</a> 
<table width="200" border="1" style="border-collapse:collapse;"> 
<tr><td id="column1" onclick="popup('a')">1</td></tr> 
<tr><td id="column2" onclick="popup('b')">2</td></tr> 
<tr><td id="column3" onclick="popup('c')">3</td></tr> 
<tr><td id="column4" onclick="popup('d')">4</td></tr> 
<tr><td>5</td></tr> 
</table> 

嗨onclick事件,禁用和启用基于条件

我想在页面加载的onclick禁用表TD一旦他点击链接启用则只有TD的onclick将被启用?如何达致这?

感谢

+0

你的逻辑似乎是失败的,为什么绑定这应该是对窗口加载未绑定的事件?也许下面的一些检查你没有谈到 –

回答

0

您需要删除onclick属性,.unbind()除去仅由bind()

$(document).ready(function() { 
    $("#column1").removeAttr('onclick'); 
}); 

演示加入这些处理程序:Fiddle

+0

@downvoter我错过任何关于OP的代码中的错误....我同意,内置的处理程序应该在那里首先...那是说在那里解决方案中的任何错误 –

1

为什么不仅绑定时弹出功能启用链接被点击?

<script> 
function popup() 
{ 
    var $this_el = $(this); 
    var param_1 = $this_el.attr("data-parameter-1"); 
    alert('Parameter is: ' + param_1); 
} 

// bind click event to td 
function enable() 
{ 
    $('.clickable').on('click', popup); 
} 

// bind click event to enable link 
// using .one() will unbind itself after it is triggered once. 
$(document).ready(function() 
{ 
    $('#enabler').one('click', enable); 
}); 
</script> 

<a id="enabler">enable</a> 
<table width="200" border="1" style="border-collapse:collapse;"> 
<tr><td id="column1" class="clickable" data-parameter-1="a">1</td></tr> 
<tr><td id="column2" class="clickable" data-parameter-1="b">2</td></tr> 
<tr><td id="column3" class="clickable" data-parameter-1="c">3</td></tr> 
<tr><td id="column4" class="clickable" data-parameter-1="d">4</td></tr> 
</table> 
+0

雅,为什么?我不明白 –

+0

如果用户点击启用链接4-5次 – user7789076

+0

好点。编辑使用'one'而不是'on' –

0

可以删除HTML中a标记内的内联事件处理程序。这个事件处理程序可以纯粹用Javascript来分配。

a标记的点击事件处理函数指定回调。在此函数内部,设置#column1上的单击事件处理程序。

HTML

<a>enable</a> 
<table width="200" border="1" style="border-collapse:collapse;"> 
<tr><td id="column1" onclick="popup()">1</td></tr> 
<tr><td>2</td></tr> 
<tr><td>3</td></tr> 
<tr><td>4</td></tr> 
<tr><td>5</td></tr> 
</table> 

的Javascript

$(document).ready(function() 
{ 
    $("a").one("click",function(){ 
     $("#column1").click(function(){ 
      popup(); 
     });  
    }); 
}); 

function popup() 
{ 
    alert('gggg'); 
} 

JS小提琴:http://jsfiddle.net/TCrR4/

+0

如果用户点击启用链接4-5次,则该怎么办 – user7789076

+0

@alok查看已更新。好点子! –

0

试试这个哥们..

我做你的代码的一些变化..

$(document).ready(function() 
{ 
    $("a").click(function(){ 
    if($(this).hasClass("action")) 
     { 
     $("#column1").removeClass("action") 
     $("#column1").bind("click",function(){ 
     alert("hiii"); 
     $(this).unbind("click");}); 
     alert("binded"); 
     } 
    else 
    { 
     $("#column1").addClass("action") 
     $("#column1").unbind("click"); 
     alert("unbinded"); 
     } 
}); 
}); 
+0

如果用户点击启用链接4-5次如果 – user7789076

+0

它会一次又一次地绑定,如果你想在下次点击时解除绑定,可以通过添加和删除类来简单实现。 – Madhu

+0

我已经更新了代码,请检查它 – Madhu

相关问题