2013-10-04 4 views
0

Я работаю над проектом, что включает в себя механизм smartsearch.Выделить все элементы, кроме ... в jQuery

Я хотел бы написать метод, который заставляет клиента писать внутри smartsearch, даже если он не сфокусирован. F.E. просматривая сайт, клиент ударяет по ключу, а фокус переходит к smartsearch.

Это работает отлично с этим простым кодом:

$(document).ready(function() 
{ 
$("*").keydown(function() 
{ 
    $("input.ss-24#b").focus(); 
}); 
}); 

Но, да, как вы можете видеть, это unfocuses другие входы тоже, и это не так, как я хочу. я пытался несколько 'Possible-решений', как : нет() и даже .not() метода как:

$(document).ready(function() 
{ 
$("*").not("input").keydown(function() 
{ 
    $("input.ss-24#b").focus(); 
}); 
}); 

Но еще unfocuses поля с "входным" тэгу тоже. Что нужно сделать, чтобы заставить jQuery не выбрать поля ввода для прослушивания этого события?

Спасибо, Стивен.

+2

ваших входных элементы в других элементах, такие как '' и '' , которые срабатывают на кипящем событие. – zzzzBov

+0

У меня есть ощущение, что '$ (document) .keydown (function() {$ ('# b'). Focus();})' должно быть достаточно. – Brian

+0

Да, Брайан, ты прав. И я уверен, что проблема связана с этой точкой, @zzzzBov. –

ответ

0
$(document).ready(function() { 
    $(document).keydown(function (e) { 
    $("input.ss-24#b").focus(); 
    }); 
}); 

Это работает?

http://jsfiddle.net/Xbbu8/

+0

Конечно, спасибо, но как это будет решением проблемы? –

+0

он, вероятно, забыл добавить e.stopPropagation или instantPropagation :) – Alex

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