Javascript js,将var解析回其父级
我有两个函数,父函数是u triggerAction,而子函数是u triggerNormal,父$current正在更新,如何解析新的Javascript js,将var解析回其父级,javascript,jquery,variables,Javascript,Jquery,Variables,我有两个函数,父函数是u triggerAction,而子函数是u triggerNormal,父$current正在更新,如何解析新的 $current = $index 从触发正常回到触发动作 _triggerAction = function(el, click, fx) { var $current, $link; $link = el.find('.tab-menu').find('li'); $current = 0; if (click) {
$current = $index
从触发正常回到触发动作
_triggerAction = function(el, click, fx) {
var $current, $link;
$link = el.find('.tab-menu').find('li');
$current = 0;
if (click) {
log('Trigger by click');
return $link.click(function() {
return __triggerNormal(this, el, $current, fx);
});
} else {
log('Trigger by hover');
return $link.hover(function() {
return __triggerNormal(this, el, $current, fx);
});
}
};
__triggerNormal = function(thisEl, el, $current, fx) {
var $index;
if (!($(thisEl).hasClass("active"))) {
log('current slide ' + $current);
log($index = $(thisEl).index());
__addRemoveClass(thisEl);
__fxAction(el, fx, $current, $index);
return $current = $index;
}
};
而不是
return __triggerNormal(this, el, $current, fx);
做
$current
在函数之间不共享,因此在\u triggerNormal
内部
return $current = $index;
只更新局部变量。你可以直接写
return $index;
顺便说一句,事件处理程序的返回值仅用于确定是否阻止默认操作和停止传播。在您的情况下,似乎根本不需要返回$current。谢谢,这似乎是正确的,但它仍然不会更新父级中的$current。也许您可以创建一个演示
$current=\u triggerNormal(…)
将使用\u triggerNormal
返回的任何内容更新$current
。我记录了新的返回值$current=\u。。。。但它返回未定义的结果,您能看看这里吗?正如我所说,请创建一个功能性的JSFIDLE演示。。。这对我们来说更容易测试。请解释您的代码实际应该做什么。这是一个选项卡脚本,调用触发器操作来检测它是否是悬停或单击交互,触发器法线用于捕获当前return $index;