2013-10-04 6 views
0

i've получил HTML элемент:JQuery .он и .trigger

... 
<div class="preferences"> 
    ... 
    <button class="menuButton cpnScanPressed" id="btnScanCpn">Scan</button> 
    ... 
</div> 
... 

и привязку событий на нем:

$('.preferences').on('click', '#btnScanCpn', handleScanCpn); 

Теперь я хочу, чтобы вызвать это событие, если ESC нажата:

/* discard changes if pressing esc */ 
input.keydown(function(e) { 
if (e.keyCode == 27) { 
    e.preventDefault(); 
    console.log("DEBUG"); // console says:"DEBUG" 
    console.log($(".cpnScanPressed#btnScanDps")); // console says:"jQuery()" 
    $("#btnScanDps").trigger('click'); // wont fire! 
    } 
}); 

так что, как представляется, проблема?! кажется, селектор не работает?! я не понимаю.

+4

'# btnScanDps' или' # btnScanCpn'? (ха-ха кто-то любил этот вопрос) –

+0

spell ошибка? 'btnScanDps' &' btnScanCpn'? – Vandesh

+0

Я не вижу в вашей разметке каких-либо элементов, соответствующих '# btnScanDps'. Селектор работает, он ничего не находит. – David

ответ

2

У вас есть два id s #btnScanDps и #btnScanCpn, которые не соответствуют друг другу. Я предполагаю, что это была опечатка?

1

Вам необходимо исправить свои идентификаторы. Вы привязываете событие к #btnScanDps, которого не существует. Используйте правильный вариант: #btnScanCpn.

console.log($(".cpnScanPressed#btnScanCpn")); 
    $("#btnScanCpn").trigger('click'); 
} 
2

Вы можете просто использовать

$("#btnScanCpn").click(); 

Надеется, что это будет работать.