javascript - 如何防止在特定 HTML 元素上执行 javascript/jquery?

标签 javascript jquery

$subject 的可能性有多大?

想象一下我有一个 foo html 元素

例如

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

并且默认绑定(bind)了一个 jquery 函数,

例如

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

所以这会将 DOM 元素更改为类似的东西,

例如

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

所以我想做的是阻止将更改应用到 foo 元素,如果它有一个类名 .example。所以要注意的是,我无法触及默认执行代码。但我可以编写另一个函数来处理它。这就是我现在面临的问题。是否有可能实现这一点?

最佳答案

最简单的方法是更改​​ 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);

关于javascript - 如何防止在特定 HTML 元素上执行 javascript/jquery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41075538/

相关文章:

javascript - 为什么在 Chrome 扩展程序中使用 RequireJS 调用时 chrome.tabs.query() 不返回选项卡的 URL?

javascript - 如何改进我的 javascript 模式以获得更大的灵活性/可维护性?

javascript - 如何使用 JavaScript 映射从数组中获取孤立值?

jquery - 如何使用本地 JSON 对象作为 jQuery DataTables 的数据源

javascript - jQuery UI 自动完成 "no match"选择

javascript - 使用reduce在Node中求和js文件参数

javascript - 当用作参数时,参数引用什么?

jQuery,在切换内切换

javascript - Html 5 数据属性转换为 jquery 插件选项格式

javascript - 为什么我不能得到我悬停的确切元素?