2017-10-19 15 views
0

添加和刪除onclick prop我想從a herf元素中添加和刪除onclick聽衆。 這樣:從href

var currentValue = $('#in-new-value').val(); 

if(!Pattern.test(currentValue)){   
    //disable click 
    $("#aSubmitButton").prop('onclick', null); 
}else{ 
    //enable click    
    $("#aSubmitButton").prop('onclick', 'javascript:CheckUserInput();');    
} 

和我的元素:

<a id="aSubmitButton" onclick="javascript:CheckUserInput();" class="btn_commit big_btn fll"</a> 

禁用的作品,更是爲了使回不行。

+0

它可能更容易使用jQuery的'on'和'off'添加和刪除事件偵聽器。 http://api.jquery.com/off/ http://api.jquery.com/on/ – bassxzero

回答

1

您可以使用jQuery click()這個..

var currentValue = $('#in-new-value').val(); 
 

 
$("#aSubmitButton").click(function(){ 
 
    if(Pattern.test(currentValue)){ 
 
    CheckUserInput(); 
 
    } else { 
 
    return false; 
 
    } 
 
})

+0

這有一個更好的邏輯,謝謝。 –

0

你爲什麼不添加和刪除類和jQuery的做到這一點:

$('.yourClass').click(function({ 
//do stuff 
})) 
0

,並不是與HTML混合點擊處理一個好主意

你可以給處理器作爲 添加單擊處理程序時,你永遠需要它作爲

var currentValue = $('#in-new-value').val(); 

if(!Pattern.test(currentValue)){ 

$('a').click(function() { 
}) 
} 
0

當使能使用.attr()代替.prop()

$("#aSubmitButton").attr('onclick', 'javascript:CheckUserInput();'); 

您也可以禁用時,它使用它:

$("#aSubmitButton").attr('onclick', ''); 
0

您可以使用其他方法從元素中刪除事件處理程序。我建議你使用unbind()和bind()函數。

在最簡單的情況下,不帶參數,.unbind()除去附着於元件的所有處理程序:與類型無關

$("#aSubmitButton").unbind(); 

此版本中刪除處理程序。爲了更精確 ,我們可以通過一個事件類型:

$("#aSubmitButton").unbind("click"); 

爲附加事件使用綁定()是這樣的:

$("#aSubmitButton").bind("click", function() { 
//your stuff 
}); 

:在jQuery 3.0,.unbind()已被棄用。自從jQuery 1以來,它已被.off()方法取代。7,所以可以使用:

$('#aSubmitButton').off('click'); 

更多的幫助: http://api.jquery.com/unbind/