onClick nie działa na urządzeniach mobilnych (touch)

Ok, co im próbuje zrobić, to przesuwać div w dół, gdy użytkownik kliknie element listy.

Problem polega na tym, że używam Selectric https://github.com/lcdsantos/jQuery-Selectric {[5] } który konwertuje pole wyboru na listę nieuporządkowaną. Więc kiedy użytkownik kliknie, które źródło wyprowadza jako element listy, chcę, aby div zsunął się w dół.

W mobilnej przeglądarce safari (iOS7) interfejs selectbox jest taki sam jak standardowy interfejs selectbox.

Jaka jest najlepsza praktyka, jeśli chodzi o onClick dla urządzeń mobilnych urządzenia?

Basic jquery:

$(window).load(function() {
        $('.List li').click(function() {
            $('.Div').slideDown('500');
        });
    });

Możesz zobaczyć działający przykład tutaj (Wyszukiwanie zaawansowane na pasku bocznym)

Dzięki.
Author: Dale, 2014-02-25

2 answers

Lepiej użyć zdarzenia touchstart z metodą .on() jQuery:

$(window).load(function() { // better to use $(document).ready(function(){
    $('.List li').on('click touchstart', function() {
        $('.Div').slideDown('500');
    });
});

I nie rozumiem, dlaczego używasz metody $(window).load(), ponieważ czeka ona na załadowanie wszystkiego na stronie, to zwykle jest powolne, podczas gdy możesz użyć metody $(document).ready(), która nie czeka na załadowanie każdego elementu na stronie.

 64
Author: Jai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-25 13:47:16

Możesz użyć zamiast kliknięcia:

$('#whatever').on('touchstart click', function(){ /* do something... */ });
 6
Author: Ram Patidar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-25 13:42:55