我正在尝试覆盖我正在开发的网站的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));
}
});
});
}
});
这不起作用 - 永远不会调用该函数。我不确定那是什么,但显然我错过了一些基本的东西。我错过了什么?
答案 0 :(得分:0)
您在错误的上下文中调用该函数。在bind()方法内部的上下文选择器:
$(this)
指的是鼠标的上下文,您需要做的就是替换
$(this).displayTab($(this));
带
displayTab($(this));
我已在代码here的精简版中对此进行了说明。