当我在按钮元素上单击两次(不是双重clikcing,只是在任何时间点击两次)时,我试图让这个函数运行一次,初始化它然后重置它。< / p>
<a href="#" onclick="popHover()">
$('.challenge_popover').popover()
var clicked = false
function popHover() {
// I NEED THIS PART TO RUN ON THE FIRST CLICK
if (clicked == false)
{
$('.challenge_popover').popover('destroy')
}
// AND THIS PART TO RUN ON THE SECOND CLICK
$(document).live('mousedown', function(e) {
if (e.which == 1)
{
$('.challenge_popover').popover()
clicked = true
}
});
}
答案 0 :(得分:2)
首先,你不应该像这样使用内联事件处理;只是让锚点裸露:
<a href="#">
然后,使用jQuery附加click处理程序:
$('.challenge_popover')
.popover()
.on('click', popHover)
接下来,您的点击事件处理程序:
function popHover()
{
// we keep the clicked state on the element itself
var clicked = $(this).data('clicked');
if (!clicked) {
// action #1
$(this).popover('destroy')
} else {
// AND THIS PART TO RUN ON THE SECOND CLICK
$(this).popover();
}
// toggle clicked state
$(this).data('clicked', !clicked);
}
我不确定第三次点击会发生什么;我认为它应该再次采取行动#1。
答案 1 :(得分:0)
看一下jQuery .dblclick()
,它会有很多帮助。
描述:将事件处理程序绑定到“dblclick”JavaScript事件,或在元素上触发该事件。
答案 2 :(得分:0)
你在寻找像
这样的东西吗?$('.challenge_popover').popover();
var clicked = false;
function popHover() {
if (clicked) {
$('.challenge_popover').popover('destroy')
} else {
$('.challenge_popover').popover()
}
clicked = !clicked;
}