将twitter引导程序popover设置为在某个事件之后隐藏,然后在另一个事件之后显示

Set twitter bootstrap popover to hide after a certain event then show after another event

本文关键字:事件 之后 隐藏 然后 显示 另一个 引导程序 twitter popover 设置      更新时间:2023-09-26

用户在文本区域中进行更改。当发生此更改并且另一个条件为true时(在这种特殊情况下,条件是文本字段包含"yes"),我会显示一个引导弹出窗口。

showPopover = function() {
    return $(this).popover("show");
};
  hidePopover = function() {
    return $(this).popover("hide");
};
var cond = true;
$("textarea").on("change keyup", function (e) {
    var pt = $("#user_user_profile_attributes_title").val();
    if (cond&&pt=="yes") {
        $("[rel=next-popover]").popover({
        placement: "right",
        trigger: "manual"
    })
    .hover(showPopover, hidePopover).click(showPopover);
    }
    else {
        $("[rel=next-popover]").popover({
        placement: "right",
        trigger: "manual"
    })
    .hover(hidePopover, hidePopover).click(hidePopover);
    }
}); 

复制步骤:1) 转到http://jsfiddle.net/bpjavascript/KscL5/2) 在文本字段中键入yes3) 在文本区域进行更改&单击/悬停时查看弹出窗口4) 将yes改为其他内容&在文本字段中进行更改,不弹出5) 将文本字段改回yes&在文本字段中进行更改-现在您应该会看到一个简短的popover flash。为什么会这样?我希望它显示为步骤3。

您正在将同一类型的多个事件绑定到popover。

相反,在条件逻辑中,如果满足条件,则应绑定一个事件,否则应取消绑定该事件。

所以在你的else语句中,你应该有这样的内容:

else {
    $("[rel=next-popover]").popover({
    placement: "right",
    trigger: "manual"
    })
    .off( "mouseenter mouseleave" ).off("click");
}

在这里打闹。