2016-11-07 2 views
0

So wie wir reguläre JavaScript-Funktionen von onclick Attribut aufrufen, warum können wir jQuery-Methoden nicht wie im folgenden Code angezeigt. Warum funktioniert das nicht?So rufen Sie jquery Plugin-Funktion mit `onlick Attribut` in HTML

<body> 
<script src="https://code.jquery.com/jquery-2.0.3.js"></script> 
    <p id="p1">Some Text inside paragraph</p> 
    <button type="button" onclick="$.test();">Click Me</button> 
</body> 

JS

$.fn.extend({ 
    test: function() { 
    var t = $('#p1').text(); 
    alert(t); 
    }); 
    }, 
}); 

dank bt

+6

Warum würden Sie so etwas tun zu beginnen? Beenden Sie die Verwendung von Inline-JavaScript und stattdessen einen geeigneten Event-Handler. – adeneo

+2

und FYI, Sie haben keine '$ .test();' Methode, Sie haben eine '$ (Element) .test()' Methode! – adeneo

+1

Sie mischen Ihre Erweiterungen gegen Plugins. Sie * können * tun es auf diese Weise, indem Sie 'onlick = '$ (this) .test();' –

Antwort

1

Halten Sie die Ausgabe onclick= der Verwendung beiseite, können Sie es auf diese Weise tun:

<p id="p1">Some Text inside paragraph</p> 
<button type="button" onclick="$(this).test();">Click Me</button> 

und

$.fn.extend({ 
    test: function() { 
    var t = $(this).text(); // use $(this) here 
    alert(t); 
    }, 
}); 

Beispiel Geige: https://jsfiddle.net/asw8824h/

0
$(document).ready(function() { 
    $(document).on('click',"#target",function() {   
     // do something 
    }); 
}); 
Verwandte Themen