2014-01-20 4 views
0

Как отменить событие click для элемента с "onclick=xxx"?как отменить событие click для элемента с «onclick = xxx»?

Смотрите мой код ниже:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<button id="a" onclick="a()">a</button> 
<button onclick="test()">test</button> 
<script type="text/javascript"> 
    function a(){ 
     alert('a'); 
    } 
    function test(){ 
     // how can I remove the click function for #a? 
     // code bellow not works 
     $('#a').unbind('click'); 
    } 
</script> 

ответ

1

Вы можете просто использовать jQuery's prop() method, чтобы удалить атрибут onclick из элемента :

$('#a').prop('onclick', null); 

JSFiddle demo.

Вы не должны использовать removeAttr() `, как указано в ответе Milind Anantwar как это не будет работать должным образом в старых версиях IE:

Примечание: Удаление встроенного OnClick обработчик события, используя .removeAttr() Безразлично» t добиться желаемого эффекта в Internet Explorer 6, 7 или 8.

Источник: jQuery's removeAttr() documentation.

+0

Как это сделать в jquery 1.4.2? –

+0

@ mingfish_004 Вы можете сделать это, используя 'attr()' вместо: '$ ('# a'). Attr ('onclick', null);'. Вы действительно не должны использовать jQuery 1.4.2; это было выпущено [почти 4 года назад] (http://blog.jquery.com/2010/02/19/jquery-142-released/). –

+0

большое спасибо! –

3

Вы должны использовать:

$("#a").removeAttr("onclick"); 

или:

$("#a").prop("onclick", null); 
Смежные вопросы