Javascript onMouseCenter并单击功能不';t一起工作

Javascript onMouseCenter并单击功能不';t一起工作,javascript,jquery,twitter-bootstrap,meteor,meteorite,Javascript,Jquery,Twitter Bootstrap,Meteor,Meteorite,我正在为我的应用程序使用Meteorjs。在这里,我遇到了一个问题。我有一个锚标签。我必须调用我在MouseCenter上调用的函数,然后单击事件。我所做的是,如果用户单击锚定标记上的,就会打开一个引导框提示对话框来编辑锚定标记的文本。如果用户“mouseenter”在锚定标记上停留3秒钟,则调用一个函数,该函数显示一个引导popover。我的问题是,如果我单击锚定标记并在弹出窗口中停留三个小时,它会隐藏在锚定标记单击事件中打开的引导框对话框。 我的代码是 在元素上输入鼠标时调用的函数 'mou

我正在为我的应用程序使用Meteorjs。在这里,我遇到了一个问题。我有一个锚标签。我必须调用我在MouseCenter上调用的函数,然后单击事件。我所做的是,如果用户
单击锚定标记上的
,就会打开一个引导框提示对话框来编辑锚定标记的文本。如果用户“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类的元素?