2012-10-04 35 views
5

Tôi gặp khó khăn khi tắt khóa và dừng tuyên truyềnTrình kích hoạt jQuery() và stopPropagation() trên sự kiện phím tắt

Tôi không muốn trang của mình làm mới, tôi đã thử mọi cách tôi có thể nghĩ, mã hiện tại là

<script> 
$(document).ready(function() { 
var e = jQuery.event('keydown', { which: $.ui.keyCode.ENTER }); 

$('#id_number').trigger(e, function(event){ 
event.preventDefault(); 
event.stopPropagation(); 
}); 

}); 
</script> 

bất kỳ ý tưởng nào về những gì tôi đang làm sai ở đây? Tôi nghĩ rằng sự kiện này được gọi một cách chính xác, tôi có jquery và jquery ui liên kết một cách chính xác và không nhận được giao diện điều khiển lỗi

CẬP NHẬT tốt nó đã làm việc, bây giờ im nhận tài sản 'sự kiện' của chức năng đối tượng (a, b) {return e.fn.init mới (a, b, h)} không phải là một lỗi chức năng vào mã bên dưới

$(document).ready(function() { 
var e = jQuery.event('keydown', { which: $.ui.keyCode.ENTER } , function(event){ 
    event.preventDefault(); 
    event.stopPropagation(); 
}); 

$('#id_number').trigger(e); 

}); 

CẬP NHẬT # 2 - cố định

điều tôi học được

  1. kích hoạt() không cần thiết trong tài liệu (sẵn sàng)
  2. nhận được $ .ui.keyCode làm việc rất khó (ít nhất là đối với tôi)
  3. luôn xem những gì các chức năng khác được gắn vào đầu vào (onblur, onfocus, vv) aka doh

viết lại nó để này, hoạt động hoàn toàn tốt đẹp

$(document).ready(function() { 
    $('#id_number').keydown(OnKeyDown); 
});  

function OnKeyDown(e){ 
var code = (e.keyCode ? e.keyCode : e.which); //to support both methods 
if(code == 13) { //the Enter keycode 

    //my actions 
return false; 
} 
} 
+0

Bạn đã thử 'trở false'? – TheZ

+0

Tại sao bạn nghĩ rằng hàm 'sự kiện' (* mà bạn phải thay đổi thành' Sự kiện' bằng vốn E *) có một đối số thứ 3? theo tài liệu nó chỉ mất hai đối số .. đầu tiên là loại sự kiện và thứ hai là một đối tượng với các thuộc tính sự kiện .. –

+0

bởi vì tôi đã suy nghĩ câm? đã nhầm lẫn, xin lỗi bout rằng câu trả lời của bạn là đúng tôi chỉ couldnt có được nó để làm việc cho đến khi tôi viết lại mã –

Trả lời

7

mã này để ngăn chặn hành động mặc định phải đến yếu tố mà sự kiện này áp dụng cho ..

$('#id_number').keydown(function(event){ 
    event.preventDefault(); 
    event.stopPropagation(); 
}); 

Đối số thứ hai .trigger() là dành cho extraParameters

+0

cảm ơn, đặt stopPropagation và ngăn chặnDefault trên sự kiện keydown đã làm việc, cập nhật của tôi câu hỏi với câu trả lời, cảm ơn nhiều, đẹp –