Javascript 如何重新绑定锚定标记的已删除事件
我将根据条件解除事件绑定,一旦条件为true,我将使用jqueryoff方法,当条件为false时,我需要为锚定绑定click事件。 我尝试了下面的代码,但我无法实现它 **代码:**Javascript 如何重新绑定锚定标记的已删除事件,javascript,jquery,html,Javascript,Jquery,Html,我将根据条件解除事件绑定,一旦条件为true,我将使用jqueryoff方法,当条件为false时,我需要为锚定绑定click事件。 我尝试了下面的代码,但我无法实现它 **代码:** $('select').change(function(){ if($(this).val()=='mas'){ alert("inside"); $("#lnk").off('click'); }else { alert('else');
$('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>
看见
Ind
马斯
**Fiddler链接:**
//
您有:
$("#lnk").on('click','.add');
这里,在方法上的的第二个参数中,'.add''不是有效的函数/处理程序
。您需要在此处传递要与其绑定的函数/处理程序
,而不是传递一个类
您可以这样尝试:
$("a").on('click', addHandler);
function addHandler(){
alert('Iam clciked');
}
为什么不将click处理程序放在函数中,并首先调用它呢
function bindClick() {
$("a").off('click').on('click', function () {
alert('Clicked.');
});
}
bindClick();
然后,当条件不满足时,只需再次调用该函数以重新绑定它
$('select').change(function () {
if ($(this).val() == 'mas') {
$("#lnk").off('click');
} else {
bindClick();
}
});
这就是他要问的问题。