İyi bir anlaşma araştırdım ve tatmin edici bir çözüm bulamıyorum. Umarım birileri yardım edebilir.Javascript Saptanan Denetim Tuşu Fare Üzerinde Düzenlendi
jQuery'yi kullanırken, binlerce satırlık Javascript yazıyorum. Yani "saf" bir javascript çözümü sadece iyi.
Denetim anahtarının fiziksel olarak bir mouseup olayında tutulup tutulmadığını belirlemeye çalışıyorum. Bu kadar; başka ön şart yoktur. Bu, güvenilir bir şekilde nasıl çapraz tarayıcı yapılacağını bilen var mı?
Ben tuşuna basılır ve bırakıldığında işaret ederek bir durum değişkeni bu depolamak denedim:
// BEGIN store control key status in hash_state
$().bind('keydown','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = true;
console.debug(hash_state.sw_ctrldn);
});
$().bind('keyup','ctrl',function(arg_obj_e){
hash_state.sw_ctrldn = false;
console.debug(hash_state.sw_ctrldn);
});
// END store control key status in hash_state
Ancak bu gerçekten çalışmıyor. Bunu firebug kullanarak test edip konsolu izlerseniz, otomatik tekrarlamanın gerçekleştiğini ve değerin değiştiğini görürsünüz.
Ben yararlı bir şey olup olmadığını görmek için mouseup olayı teftiş, ama boşuna:
var debugEvent = function(arg_obj_e){
var str = '';
for (var attr in arg_obj_e){
str += attr + ': ' + arg_obj_e[attr] + '\n';
}
console.debug(str);
}
Herhangi bir yardım mutluluk duyacağız.
Vay canına, jQuery anahtar olaylarını bu şekilde desteklemedim. Herhangi bir belge bulamıyorum. Ayrıca, $() .bind() (boş jQuery) çalışır mı, yoksa sadece shorthand? Öyleyse, $ (document) 'a mı bağlı? – eyelidlessness
@eyelidlessness: Bu tür bir bağlanma js-kısayol tuşları olarak adlandırılan bir eklentiden geliyor http://code.google.com/p/js-hotkeys/ – CMS