如何在javascript中覆盖函数的行为
How to overwrite behaviour of function in javascript
我正试图覆盖我正在开发的网站的javascript函数的行为。我是javascript的新手,我在弄清楚这一点时遇到了问题。我看了几个视频,读了一些书,这就是我想到的。
jQuery(document).ready(function ($) {
function displayTab(element) {
alert('here'); // test that I am getting here
var tab = Drupal.quicktabs.tab
// Set tab to active.
$(this).parents('li').siblings().removeClass('active');
$(this).parents('li').addClass('active');
// Hide all tabpages.
tab.container.children().addClass('quicktabs-hide');
if (!tab.tabpage.hasClass("quicktabs-tabpage")) {
tab = new Drupal.quicktabs.tab(element);
}
tab.tabpage.removeClass('quicktabs-hide');
return false;
}
if ($( '#quicktabs-menu_block').length > 0) {
$('#quicktabs-menu_block .quicktabs-tabs li').each(function() {
$('a', this).bind({
mouseenter: function(){
$(this).displayTab($(this));
}
});
});
}
});
这不起作用-函数从未被调用。我不确定那是什么,但显然我错过了一些基本的东西。我错过了什么?
您在错误的上下文中调用函数。在bind()方法中,上下文选择器:
$(this)
指的是鼠标的上下文,你所需要做的就是替换
$(this).displayTab($(this));
带有
displayTab($(this));
我已经在你的代码的精简版本中对此进行了说明。
相关文章:
- 覆盖函数中的函数
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- Javascript重新定义和覆盖现有的函数体
- 如何在javascript中覆盖函数的行为
- 覆盖Jquery's函数
- 如何在Extjs中覆盖lovcombo中的函数
- 如何覆盖Backbone's解析函数
- 如何通过 JQuery ajaxSend 事件覆盖成功函数
- 覆盖主干的解析函数
- 覆盖上下文.属性和函数
- 有没有办法覆盖 setTimeout 函数,使其使用微秒而不是毫秒
- 被覆盖的 setTimeout 变量中的函数
- 为什么某些原型函数覆盖有效而其他函数无效
- JavaScript - 使用包含异步回调但仍返回原始值的函数覆盖函数
- 带有knockout.js函数覆盖的Javascript
- Javascript函数覆盖原型
- 函数覆盖类,而不是添加新的
- 是否可以用自定义函数覆盖window.location函数
- javascript函数覆盖
- 有没有办法使用 jsp 中包含的 js 文件中的函数覆盖 jsp 中存在的 js 函数