2017-09-13 3 views
0

Also versuche ich das Onclick-Attribut aus dem div "#link" zu entfernen. Es wird nicht entfernt. Es wird auch nicht funktionieren, wenn ein Attribut für onclick gesetzt wird. Alles, was Onclick zu bearbeiten scheint, scheint es nicht zu beeinflussen. Ich brauche es, um das Attribut "onclick" zu entfernen und es auf ein anderes zu setzen.Setzen und Entfernen des Onclick-Attributs

Dank

$(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

Verwenden Sie nicht setAttribute, um Ereignisse hinzuzufügen. Es gibt addEventListener! – epascarello

+0

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

+0

Beide scheinen nichts zu tun. https://jsfiddle.net/w0mcr5vh/7/ – Will

Antwort

0

nicht sicher, was Sie versuchen zu erreichen, wie Sie bereits jQuery verwenden Sie die Dinge vereinfachen könnte. So etwas wie dies

$(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>

Hinweis, statt click Ereignis unter der Bedingung zu entfernen ich es nach einer bestimmten Zeit entfernt, könnten Sie Bedingung basierend auf Ihren Anforderungen hinzufügen. Beide attribute und linklength schien unnötig, deshalb habe ich es entfernt.

Um

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/

hoffe, das hilft mehr über Event-Listener zu lernen, lassen Sie mich wissen, wenn Sie Fragen haben.

Verwandte Themen