2016-12-10 4 views
1

Was ist die Möglichkeit des $ Subjekts?Wie verhindert man Javascript/jquery Ausführung auf bestimmten HTML-Element?

Man stelle sich vor Ich habe ein foo html-Element

z.B.

<div data-toggle="loader">...</div> 

und eine jquery Funktion es standardmäßig binded haben,

z.B.

$(document).ready(function(){ 
    $('[data-toggle=loader]').loader(); 
}); 

So wird dies das DOM-Element wie etwas ändern,

z.B.

<div data-toggle="loader" class="active" style="height:800px">...</div> 

Also, was ich tun möchte, ist die Änderungen an das foo Element zu verhindern Anwendung, wenn es einen Klassennamen .example hat. So ist der Haken, ich kann den Standard-Ausführungscode nicht berühren. Aber ich kann eine andere Funktion schreiben, um damit umzugehen. Das ist das Problem, dem ich gerade gegenüberstehe. Jede Möglichkeit, dies zu erreichen?

Antwort

2

Am einfachsten wäre es, entweder die DOM-Struktur zu ändern, das heißt, die JS findet das Element nicht mehr oder überschreibt das jQuery-Plugin mit etwas Unschädlichem. Tun Sie dies in einem Skript, nachdem das Plugin-Skript selbst geladen wurde.

jQuery.fn.loader = jQuery.noop; //$.noop is an empty, pointless function 

[EDIT]

Im Lichte der Kommentar des OP, die beste Wette ein Klon des Elements speichern, kann dann mit ihm das ursprüngliche Element ersetzen, nachdem das Plugin gefeuert hat.

var 
el = $('.some-element'), 
clone = el.clone(1, 1); 
//some time passes... plugin is called... does nothing to element 
el.replaceWith(clone); 
+0

Hallo, danke für die Antwort. Aber es wird überall auf der Seite deaktivieren, oder? Ich möchte es für andere Elemente außer den Elementen mit der Klasse ".example" beibehalten. Weil Seite auch viele andere Funktionen enthalten kann. –

Verwandte Themen