Как мне прикрепить функцию Jquery к вводу HTML - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть этот код:

$(function (){

    $('#searchText2').keyup(function(event){
        if (event.which >= 38 && event.which <= 40)
            return;
        var val = $(this).val();
        jQTubeUtil.suggest(val, function(response){
            var html = '';
            for(s in response.suggestions){
                var sug = response.suggestions[s];
                html += '<li class="uli2"><a href="#">'+sug+'</a></li>';
            }
            if (response.suggestions.length)
                $('#autocomplete').html(html).show();
            else 
                $('#autocomplete').hide();
        });
    });

});

Я хотел бы запустить этот код, когда ввод onblur или onfocus с HTML: <input name="q" type="text" onblur="**WHAT DO I PUT HER TO RUN CODE**">

Я дал функции имяно это не сработало.

Ответы [ 3 ]

2 голосов
/ 14 сентября 2011

Просто свяжите оба события для выполнения одной и той же функции:

$(function (){

    var myFunc = function(event){
        if (event.which >= 38 && event.which <= 40)
            return;
        var val = $(this).val();
        jQTubeUtil.suggest(val, function(response){
            var html = '';
            for(s in response.suggestions){
                var sug = response.suggestions[s];
                html += '<li class="uli2"><a href="#">'+sug+'</a></li>';
            }
            if (response.suggestions.length)
                $('#autocomplete').html(html).show();
            else 
                $('#autocomplete').hide();
        });
    }

    $('#searchText2').keyup(myFunc).blur(myFunc);

});
1 голос
/ 14 сентября 2011

Вам не нужно прикреплять обработчик событий в HTML.

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

Я вижу, @Tatu только что опубликовал пример кода, когда я пишу это, поэтому я не буду добавлять то же самое здесь.

Здесь важно знать, что вам никогда не нужно использовать механизм прикрепления событий HTML. Это устаревшее и редко имеет действительное место в наши дни.

1 голос
/ 14 сентября 2011

Попробуйте это:

Добавьте идентификатор в поле ввода следующим образом:

<input name="q" id='tempId' type="text" onblur="**WHAT DO I PUT HER TO RUN CODE**">

$('#tempId').focus(function() {  
    // write your code for onfocus here
}).blur(function() {
    // write your code for blur here
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...