这是Drupal 中使用的 Superfish 库。第 102 行的 superfish.js 文件包含代码:
$.fn.extend({
hideSuperfishUl : function(){
/* some statements */
},
showSuperfishUl : function(){
/* some statements */
}
});
我需要重写这两个函数。怎么做?(我不是指如何在 Drupal 中具体执行,而是如何在 javascript 中执行)
PS 根据一些信息,我尝试在自己的脚本中添加此代码:
(function ($) {
var orig_hideSuperfishUl = $.hideSuperfishUl;
$.hideSuperfishUl = function(){
alert('lol');
}
})(jQuery);
Firebug 显示以“var”开头的语句在页面刷新后运行,但以“alert”开头的语句不运行。相反,原来的 hideSuperfishUl 函数运行。
[编辑 1] 我将自定义代码更改为:
(function ($) {
//var orig_hideSuperfishUl = $.hideSuperfishUl;
var hideSuperfishUl = function(){
alert('lol');
}
})(jQuery);
[编辑 2] 我添加了 4 个断点:
- 在第 102 行的 superfish.js 中,带有代码
$.fn.extend({
- 在第 106 行的 superfish.js 中,带有代码
o.retainPath = false;
- 在我的脚本中
var hideSuperfishUl = function(){
- 在我的脚本中
alert('lol');
刷新页面后,首先运行断点 1 处的代码,然后运行断点 3 处的代码。鼠标上下移动菜单后,断点 2 处的代码运行。未达到断点 4。
断点 1 处的调用堆栈只有两个匿名函数(第一个是带有 jQuery 参数的最外层函数,第二个是断点)。断点 3 处的调用堆栈非常相似。