javascript - jQuery 就绪 - 如何剥离现有的就绪句柄?

标签 javascript jquery

我被要求在第三方网站上执行维护,我可以编辑 JavaScript,但不能编辑后端代码。该站点使用一个插件,可以在 jQuery.ready 调用中设置各种样式和事件。我想停止它而不引起错误。我可以在模板中的插件之前和之后插入 javascript,但插件内的标记来自其他地方。我尝试过这样的事情:

<script>
    var tmpReady = $.ready;
    $.ready = function() {};
</script>
<pluginWhichICanNotChange>
    $(document).ready( function(){ BAD STUFF } );
</pluginWhichICanNotChange>
<script>
    $.ready = tmpReady;
</script>

但是“坏东西”仍然会发生。有人知道我如何剥离它吗!?

最佳答案

这是因为与选择器一起使用的方法位于 $.fn 命名空间中。以下内容应该有效:

<script>
    var realReady = $.fn.ready;
    $.fn.ready = function() {};
</script>
<pluginWhichICanNotChange>
    $(document).ready(function() { /* BAD STUFF */ });
</pluginWhichICanNotChange>
<script>
    $.fn.ready = realReady;
</script>

关于javascript - jQuery 就绪 - 如何剥离现有的就绪句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983656/

相关文章:

javascript - 为什么光滑的 slider 在循环的第二次迭代中刷新 slider 项的 css

php - ajax post 然后获取要使用的文件

php - Laravel Blade 中无法显示 Jquery 和 Ajax 错误消息

c# - 意外的 token > jquery ajax

javascript - JQuery 在没有任何错误消息的情况下停止工作

javascript - 在 javascript 代码中添加按钮

javascript - 使用 jsPDF 将 HTML 内容转换为 PDF 文件

javascript - 如何删除d3饼图

javascript - 根据内容过滤Array中的字符串(过滤搜索值)

javascript - 如果语句在控制台中有效,而不是在源代码中