Javascript onMouseCenter并单击功能不';t一起工作
我正在为我的应用程序使用Meteorjs。在这里,我遇到了一个问题。我有一个锚标签。我必须调用我在MouseCenter上调用的函数,然后单击事件。我所做的是,如果用户Javascript onMouseCenter并单击功能不';t一起工作,javascript,jquery,twitter-bootstrap,meteor,meteorite,Javascript,Jquery,Twitter Bootstrap,Meteor,Meteorite,我正在为我的应用程序使用Meteorjs。在这里,我遇到了一个问题。我有一个锚标签。我必须调用我在MouseCenter上调用的函数,然后单击事件。我所做的是,如果用户单击锚定标记上的,就会打开一个引导框提示对话框来编辑锚定标记的文本。如果用户“mouseenter”在锚定标记上停留3秒钟,则调用一个函数,该函数显示一个引导popover。我的问题是,如果我单击锚定标记并在弹出窗口中停留三个小时,它会隐藏在锚定标记单击事件中打开的引导框对话框。 我的代码是 在元素上输入鼠标时调用的函数 'mou
单击锚定标记上的,就会打开一个引导框提示对话框来编辑锚定标记的文本。如果用户“mouseenter”在锚定标记上停留3秒钟,则调用一个函数,该函数显示一个引导popover。我的问题是,如果我单击锚定标记并在弹出窗口中停留三个小时,它会隐藏在锚定标记单击事件中打开的引导框对话框。
我的代码是
在元素上输入鼠标时调用的函数
'mouseenter .edit_name': function (evt, tgt) {
timer = setTimeout( function() {
var id=$(evt.currentTarget).data("pk");
$("#edit_name_"+id).popover({title:"Objective" ,content:Objective})
$("#edit_name_"+id).popover("show")
}, 1500);
}
},
鼠标离开功能
'mouseleave .edit_name': function (evt, tgt) {
$(evt.currentTarget).data("pk");
$("#edit_name_"+id).popover("hide")
clearTimeout(timer);
},
单击时调用的函数
'click .edit_name': function (evt, tgt) {
bootbox.prompt("Module Name",function(arg1,arg2){
}
},
但当我点击元素并在那里停留3秒钟时,bootbox提示符消失并显示popover。告诉我gus,如果我点击元素,如何停止显示popover
'mouseenter .edit_name': function (evt, tgt) {
timer = setTimeout( function() {
var id=$(evt.currentTarget).data("pk");
$("#edit_name_"+id).popover({title:"Objective" ,content:Objective})
$("#edit_name_"+id).popover("show")
}, 1500);
}
},
编辑:
我用bootstrap.editable.js来代替bootbox.prompt,如下所示
$(".edit_name").editable({
inputClass: 'input-large',
url: function (params) {
Meteor.call("renameItem", params.pk, params.value);
}
});
但还是一样的问题。当弹出窗口显示时,它会隐藏.editable输入字段。只需检查引导框是否存在于setTimeout
函数中。如果启动盒存在,不要运行popover代码
"mouseenter .edit_name": function () {
timer = setTimeout( function() {
if ( !$(".bootbox").length ) {
$(".edit_name").popover( { title: "Objective", content: Objective } );
$(".edit_name").popover("show");
}
}, 1500);
}
顺便说一句,你少了几个;:)意味着使用分号它会正常工作吗?我说“作为旁白”,所以这与你的问题无关,只是关于你的编码风格。好的,Thanx Morre,我会改进它。Thanx Cuberto,但我不明白怎么做,或者你建议怎么做?是的,Thanx@Cuberto。它很好用。您能告诉我它是如何工作的吗?$(“.bootbox”)
在DOM中搜索类为“bootbox”的元素,bootbox就是这样生成的。jQuery调用返回一个数组,如果没有bootbox元素,该数组将为空if(!someArray.length)
仅表示“如果数组的长度值为falsy(在本例中为0)”。是的,理解,但这会产生另一个问题。现在,它完全阻止了弹出窗口
。意味着如果我没有点击
标签,只需在其上输入鼠标1500秒或更长时间,它就不会显示任何popover。是否有另一个具有bootbox类的元素?