0

我的 jQuery 表现得非常奇怪。在页面加载时第一次单击按钮/锚点时,它不会展开弹出框 div。但是 jQuery 正在运行并且 console.log 语句正在执行。只有在单击按钮/锚点一次,然后单击页面上的其他内容然后返回单击按钮后,该按钮才会按预期执行。我无法理解这种行为。请指导。

$('.BookAppButton').click(function(event){
    event.preventDefault();
    console.log("Button Clicked..");
    $('.BookAppButton').popover({
        title : '',
        html : 'true',
        content:'<div><p>I should have popped on first click</p></div>'
    });
});

这是 JSFiddle 链接。如果您运行代码,您将理解我正在谈论的奇怪行为:http: //jsfiddle.net/8yyjyte1/#&togetherjs=B36bVLS1R7

先感谢您。

4

1 回答 1

1

您在单击处理程序中调用的代码用于准备弹出框,而不是用于显示它。你应该在你.click的函数之外调用它,引导 js 会在目标的焦点上自动显示它,a在这种情况下是你的。

所以它应该是这样的:

// -- this is not needed anymore
$('.BookAppButton').click(function (event) {
    event.preventDefault();
    console.log("Button Clicked..");

});

// this should be directly in your 'ready' function
$('.BookAppButton').popover({
    title: '',
    html: 'true',
    content: '<div><p>I should have popped on first click</p></div>'
});

和小提琴:http: //jsfiddle.net/cewkazk6/

于 2014-12-25T12:47:49.210 回答