jQuery就绪 - 如何剥离现有的准备好的句柄?

时间:2011-02-13 10:30:01

标签: javascript jquery

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

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

但BAD STUFF仍在开火。任何人都知道如何剥夺它!?

1 个答案:

答案 0 :(得分:8)

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

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