Çeşitli cihazlarda çalışması gereken bir mobil web sitesinde çalışıyorum. Şu an bana başım ağrıyor BlackBerry.
Hem klavye tıklamalarını hem de dokunma etkinliklerini desteklememiz gerekir.
İdeal olarak sadece şunu kullanırdım:
$thing.click(function(){...})
ancak karşılaştığımız sorun, bu böğürtlen cihazlarının bazılarının dokunma anından tıklamayı tetikleyen çok can sıkıcı bir gecikmeye sahip olmasıdır.
Çözüm bunun yerine touchstart kullanmaktır:
$thing.bind('touchstart', function(event){...})
Ama her iki olayı da bağlarım, ama sadece bir olayı nasıl tetiklerim? Klavye aygıtları için yine de tıklama etkinliğine ihtiyacım var, ancak elbette, bir dokunmatik cihaz kullanıyorsanız tıklama etkinliğinin tetiklenmesini istemiyorum.
Bonus bir soru: Bunu yapmak ve ayrıca bir touchstart etkinliği bile olmayan tarayıcıları barındırmak için yine de var mı? Bunu araştırırken, BlackBerry OS5 dokunmatik başlatmayı desteklemiyor gibi görünüyor, bu nedenle o tarayıcı için tıklama etkinliklerine de güvenmeniz gerekecek.
EK:
Belki daha kapsamlı bir soru:
JQuery ile aynı temaslarla hem dokunmatik etkileşimleri hem de fare etkileşimlerini ele almak mümkün mü / tavsiye ediliyor mu?
İdeal olarak, cevap evettir. Değilse, bazı seçeneklerim var:
1) Cihaz bilgisini almak için WURFL kullanıyoruz, böylece kendi cihaz matrisimizi oluşturabiliriz. Cihaza bağlı olarak, touchstart VEYA click'i kullanacağız.
2) JS üzerinden tarayıcıda dokunmatik destek için algılama (Bu konuda biraz daha araştırma yapmam gerekiyor, ancak bu yapılabilir gibi görünüyor).
Ancak, bu hala bir sorun bırakıyor: Peki BOTH'u destekleyen cihazlar. Desteklediğimiz telefonlar (yani Nokianın ve BlackBerries) Bazı dokunmatik ekranlar her ikisine de sahip ve klavyeler. Yani bu tür bir soru beni tam anlamıyla orijinal soruya geri götürüyor ... Her ikisine de aynı anda izin vermenin bir yolu var mı?
.bind('touchstart mouseup')
bunu çözecektir (aşağıdaki yorumlardan birine dayanarak)