2014-01-21 4 views
-1

JQuery:обработчика событий не отвечает в JQuery

var pop = $('.popupdiv'); 
disable(); 
function disable() 
{ 
    pop.slideDown(1000); 
} 
$("body").keyup(function() 
{ 
    $("body") .mousedown(function() 
    { 
     alert("hii"); 
    }) 
    pop.slideUp(1000); 
}) 

В приведенном выше примере, как только документ загружен «выключить» метод преобразования приложений, как ожидалось, но после «KeyUp» событие «slideUp» функции преобразования приложений, но Событие «mousedown» не отвечает. После удаления метода «slideUp» событие «mousedown» отвечает. Я хочу знать, почему это происходит? Каково его решение? Я хочу, чтобы и метод «slideUp», и событие «mousedown» отвечали после события «keyup».

+1

Почему вы связываете 'mousedown' в обработчике' keyup'? – Satpal

ответ

-1

Ваш код неправильно, вы вкладываете MouseDown обработчик событий внутри обработчика KeyUp событий и оба назначены на одном элементе (MouseDown, а KeyUp на тот же элемент не кажется логичным)

Вместо этого правильным является:.

var pop = $('.popupdiv'); 
disable(); 
function disable() 
{ 
    pop.slideDown(1000); 
} 
$("body").keyup(function() { 
//DO something on keyup 
}).mousedown(function() { 
//Do something on mousedown 
}); 
0

Помните, что как только вы привязали обработчик события mousedown к этому элементу, он есть; нет необходимости делать это снова. Таким образом, это достаточно:

$('body').keyup(function() {}).mousedown(function() {});

Если вы пытаетесь достичь KeyUp + MouseDown комбо на элемент, то вам необходимо заново продумать это. Возможно, что-то вроде:

Смежные вопросы