我根据条件取消绑定事件,一旦条件为真我在条件为false时使用jQuery off方法我需要为锚点绑定click事件。 我尝试了下面的代码,但我无法实现它。
**代码:**
$('select').change(function(){
if($(this).val()=='mas'){
alert("inside");
$("#lnk").off('click');
}else
{
alert('else');
$("#lnk").on('click','.add');
}
});
$("a").on('click',function(){
alert('Iam clciked');
});
HTML:
<select>
<option val=''>Seect</option>
<option val='ind'>Ind</option>
<option val='mas'>mas</option>
</select>
<a href='#' class='add' id='lnk'>Go</a>
** Fiddler Link:**
//
答案 0 :(得分:1)
你有这个:
$("#lnk").on('click','.add');
在这里,在on
方法的第二个参数中,&#39;&#39; .add&#39;&#39;不是有效的function/handler
。您需要将function/handler
传递给您bind
,而您已通过class
。
你可以这样试试:
$("a").on('click', addHandler);
function addHandler(){
alert('Iam clciked');
}
答案 1 :(得分:1)
为什么不将点击处理程序放在一个函数中,并最初调用它。
function bindClick() {
$("a").off('click').on('click', function () {
alert('Clicked.');
});
}
bindClick();
然后当条件不满足时,再次调用该函数重新绑定它。
$('select').change(function () {
if ($(this).val() == 'mas') {
$("#lnk").off('click');
} else {
bindClick();
}
});