Функция onmouseenter и click не работает вместе
Я использую Meteorjs для моего приложения. Здесь я застрял в проблеме. У меня есть якорный тег. Я должен функции, которые я призвал onmouseenter
а также click
событие. Что я сделал, если пользователь click
в теге привязки открылось диалоговое окно с приглашением bootbox для редактирования текста тега привязки. и если пользователь 'mouseenter` на теге привязки и остается там в течение 3 секунд, то вызывается функция, которая отображает всплывающее окно начальной загрузки. Моя проблема, если я нажимаю на тег привязки и остаюсь там в течение трех всплывающих окон, и он скрывает диалоговое окно начальной загрузки, которое было открыто при событии щелчка тега привязки.
Мой код
Функция вызывается, когда мышь вводится в элемент.
'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. Скажите мне, Гас, как я могу остановить отображение поповера, если я нажму на элемент.
РЕДАКТИРОВАТЬ:
Вместо bootbox.prompt я попробовал это с bootstrap.editable.js, как это
$(".edit_name").editable({
inputClass: 'input-large',
url: function (params) {
Meteor.call("renameItem", params.pk, params.value);
}
});
но все та же проблема. при отображении всплывающих окон скрывается поле ввода.editable.
1 ответ
Просто проверьте, существует ли загрузочная коробка в вашем setTimeout
функция. Если загрузочный ящик существует, не запускайте всплывающий код.
"mouseenter .edit_name": function () {
timer = setTimeout( function() {
if ( !$(".bootbox").length ) {
$(".edit_name").popover( { title: "Objective", content: Objective } );
$(".edit_name").popover("show");
}
}, 1500);
}