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
});