我被要求在第三方网站上进行维护,我可以编辑javascript但不能编辑后端代码。该站点使用一个插件,在jQuery.ready调用中设置各种样式和事件。我想在不引起错误的情况下阻止它。我可以在模板中插入插件之前和之后插入javascript,但插件中的标记来自其他地方。我尝试过这样的事情:
<script>
var tmpReady = $.ready;
$.ready = function() {};
</script>
<pluginWhichICanNotChange>
$(document).ready( function(){ BAD STUFF } );
</pluginWhichICanNotChange>
<script>
$.ready = tmpReady;
</script>
但BAD STUFF仍在开火。任何人都知道如何剥夺它!?
答案 0 :(得分:8)
这是因为使用选择器的方法位于$.fn
命名空间中。以下应该有效:
<script>
var realReady = $.fn.ready;
$.fn.ready = function() {};
</script>
<pluginWhichICanNotChange>
$(document).ready(function() { /* BAD STUFF */ });
</pluginWhichICanNotChange>
<script>
$.fn.ready = realReady;
</script>