Имам този код:
$(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**">
Наистина дадох името на функцията, но това не работи.
Отговори:
1 за отговор № 1Няма нужда да свързвате обработващия събитието в HTML.
Вие ще искате да запазите JS (jQuery) кода отделно от вашия HTML и да направите това, можете да използвате механизмите за обработка на събития, които са ви налични в jQuery.
Виждам @Tatu току-що е публикувал проба от код, докато пиша това, така че няма да добавя същото тук.
Важната част тук е да знаете, че никога не е необходимо да използвате механизма за прикачване на HTML събитие. Тя е остаряла и рядко има валидно място в наши дни.
2 за отговор № 2
Просто свържете и двете събития, за да вършите една и съща функция:
$(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 за отговор № 3
Опитайте тази :
Добавете идентификатор към полето за въвеждане като този:
<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
});