Javascript 如何重新绑定锚定标记的已删除事件

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');

我将根据条件解除事件绑定,一旦条件为true,我将使用jqueryoff方法,当条件为false时,我需要为锚定绑定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>

看见
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();
    }
});

这就是他要问的问题。