2016-12-10 43 views
1

$主題有什麼可能性?如何防止在特定的HTML元素上執行javascript/jquery?

試想一下,我有一個foo html元素

例如

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

和具有由缺省綁定到其上的jQuery函數,

例如

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

因此,這將DOM元素更改爲類似,

例如

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

所以我想要做的就是防止應用更改foo元素,如果它有一個類名.example。因此,我無法觸及默認的執行代碼。但是我可以編寫另一個函數來處理它。這是我現在面臨的問題。任何可能實現這一目標?

回答

2

最簡單的方法是改變DOM結構,即JS不再找到該元素,或用無害的東西覆蓋jQuery插件。在插件腳本本身加載後,在腳本中執行此操作。

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

[編輯]

在OP的評論來看,最好的辦法可能是存儲元素的副本,然後用它代替原始元素的插件已經解僱了。

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

嗨,謝謝你的回答。但它會在頁面的任何地方禁用?我想保留它適用於除''.example'類的元素之外的其他元素。因爲頁面也可以包含許多其他功能。 –