gpt4 book ai didi

javascript - 事件函数问题

转载 作者:太空宇宙 更新时间:2023-11-04 15:20:01 24 4
gpt4 key购买 nike

我对 jQuery 有一个奇怪的问题。

我有一个函数,它在 <a> 的事件上执行标签。

link.click(someAction);

在操作中,我修改了另一个 div 元素,我只在其中设置了一些 CSS 参数并修改了类。

这按预期工作。

现在,我想扩展 someAction带有 bool 参数。
我想我现在可以按如下方式调用该方法:

link.click(function () {
someAction(true);
});

不幸的是,这不起作用。我不知道为什么。
调用方法和所有内容,但 CSS 和类根本没有改变。

然后再次使用 link.click(someAction); 调用完全相同的方法它有效。

谁能告诉我为什么?


这是一些代码

var openPopover = function( showOverlay ){
if (typeof showOverlay === "undefined" || showOverlay === null) showOverlay = true;

if (showOverlay) {
// Add transparent overlay
overlay.show();
}

// Select popover next to the clicked item
popover = $(this).next("div.popover");
// It positioned underneath the clicked item, with the spacing above

// Display the popover
popover.show();

// Reset classes
popover.removeClass("hide-animation");
popover.addClass("show-animation");

var animationEnd = function() {
$(overlay).off("webkitTransitionEnd");
$(overlay).off("oTransitionEnd");
$(overlay).off("transitionend");
};

// Add animation did end observer
$(overlay).on("webkitTransitionEnd", animationEnd);
$(overlay).on("oTransitionEnd", animationEnd);
$(overlay).on("transitionend", animationEnd);

// Run animations
popover.addClass("shown");
overlay.addClass("shown");

// If the browser doesn't support css3 animations, we call it manually
if (!supportsCSSAnimations) {
setTimeout(animationEnd, animationDuration);
}
};

  selectButton.hover(openPopover); // Opens the popover correctly

selectButton.hover(function () {
openPopover(true); // Doesn't work
});

最佳答案

更改后:

this 在下一行中,将指向 window:

popover = $(this).next("div.popover");

而之前,它指向 selectButton。尝试:

selectButton.hover(function () {
openPopover.call(this, true);
});

关于javascript - 事件函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14683656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com