2017-09-13 73 views
0

所以我想從div「#link」中刪除onclick屬性。它不會刪除。它也不適用於爲onclick設置屬性。似乎編輯onclick似乎沒有影響它。我需要它刪除「onclick」的屬性並將其設置爲另一個。由於設置和刪除onclick屬性

$(document).ready(function() { 
 
    var attribute = $('#link').attr("onclick"); 
 
    var linklength = (attribute.split("'").length - 1); 
 
    if (linklength > 5) { 
 
    $('#link').removeAttr("onclick"); 
 
     $('#link')[0].setAttribute('onclick', 'test'); 
 
    console.log(attribute); 
 
    console.log(linklength); 
 

 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="link" onclick="skinPopup('UserDirectory','for name ','#userBio');"> 
 

 
</div> 
 
<p id="title">Te'st</p>

+4

請勿使用setAttribute添加事件。有addEventListener! – epascarello

+0

'$('#link')[0] .onclick = null;' – gurvinder372

+0

似乎什麼都不做。 https://jsfiddle.net/w0mcr5vh/7/ – Will

回答

0

不知道你正在努力實現的,因爲你已經使用jQuery你能簡化的東西是什麼。這樣

$(document).ready(function() { 
 
\t var $link = $("#link"); 
 
\t function skinPopup(directory, statement, id){ 
 
\t \t console.log(directory, statement, id); 
 
\t } 
 
\t 
 
\t $link.on('click', function(){ 
 
\t \t skinPopup('UserDirectory','for name ','#userBio'); 
 
\t }); 
 
\t 
 
\t //removing click event after 3s 
 
\t setTimeout(function(){ 
 
\t \t $link.addClass('red'); 
 
\t \t $link.off('click'); 
 
\t \t // attaching mouseover and mouseout event 
 
\t \t $link.on('mouseover', function(){ 
 
\t \t \t $(this).removeClass('red'); 
 
\t \t }).on('mouseout', function(){ 
 
\t \t \t $(this).addClass('red'); 
 
\t \t }) 
 
\t }, 3000) 
 
    \t \t 
 
});
.red{ 
 
\t background: red; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
</head> 
 
<body> 
 
\t 
 
<div id="link"> 
 
Link 
 
</div> 
 
<p id="title">Te'st</p> \t 
 
\t 
 
<script src="https://code.jquery.com/jquery-3.1.0.js"></script> 
 

 
</body> 
 
</html>

注意的東西,而不是在條件移除click事件中,我刪除了一個特定的時間後,你可以根據自己的需要添加條件。 attributelinklength似乎都沒有必要,這就是我刪除它的原因。

要了解更多有關事件偵聽器

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener http://api.jquery.com/on/
http://api.jquery.com/off/

希望這會有所幫助,讓我知道如果您有任何問題。