2013-06-03 4 views
3

У меня есть поле ввода с идентификатором #input. Это поле ввода активирует функцию при размытии или нажатии кнопки ввода.Как обнаружить триггер события?

Как я могу объединить два события как одно?

$('#input') 
.keypress(function(e)) 
.blur(function(event) { 
    //Do something 
}); 

ответ

9

bind(). Различные типы событий могут быть связаны сразу путем включения каждого из разделенных пробелом:

$('#input').bind('keypress blur', function(event) { 
    //Do something 
}); 

или вы можете связать несколько обработчиков событий одновременно, передавая объект события пар типа/обработчика:

$('#foo').bind({ 
    keypress : function(e) { 
    e.preventDefault(); 
    if(e.which == 13) { //Detects enter key depressed! 
    // do something on keypress 
    } 
    }, 
    blur: function() { 
    // do something on blur 
    } 
}); 
+0

Как насчет обнаружения кнопки ввода? – user1761160

+0

Вам понадобится событие, которое специально предназначено для нажатия этой клавиши, поскольку это напрямую не связано с каким-либо элементом страницы. –

+0

У меня получилось много. – user1761160

0

например:

$('#input').on('blur keypress', blurKeyPressHandler); 

function blurKeyPressHandler(event) { 
    if (event.type == 'keypress') { 
     // DO SOMETHING 
    } 
    else if (event.type == 'blur') { 
     // DO SOMETHING ELSE 
    } 
} 
0

Вы имеете в виду, что эти два события вызовут одну и ту же функцию?

вы можете определить функцию и вызвать ее при срабатывании события.

` function dosth (event) { 
    //Do something 
    }; 

    $('#input') 
    .keypress(dosth) 
    .blur(dosth); 
` 
Смежные вопросы