簡體   English   中英

使用JQuery觸發移動設備上的點擊事件

[英]Trigger a click event on mobile devices using JQuery

在移動設備上查看時,我正在使用Sidr插件向我的網站添加側菜單。 當用戶單擊側面菜單項之一時,我希望菜單關閉,然后向下動畫到他們選擇的項。 本質上,它是一個美化的內部鏈接菜單,其中包含指向ID內容的哈希鏈接。

下面是我目前用於此目的的代碼:

    $(".mobile-nav button").sidr({source: ".sidr" });
    $('.sidr nav ul').on('click', 'li a[href^="#"]', function(){
        $(".mobile-nav button").click();
        var target = this.hash;
        var $target = $(target);

        $('html, body').stop().animate({
            'scrollTop': $target.offset().top
        }, 900, 'swing', function () {
            window.location.hash = target;
        });

        return false;
    });

在桌面瀏覽器(例如寬度為400像素)上查看時,此方法效果很好。 但是,在實際的移動設備上查看時,有效關閉Sidr菜單的.click()不起作用。

我相信這是因為您無法在手機上“點擊”,但是誰能想到我該如何解決? 任何幫助都會很棒。

謝謝

使用click touchstart

$('.sidr nav ul').on('click touchstart', 'li a[href^="#"]', function(){
//rest of your code
}

我在移動設備上的sidr遇到類似的問題。 最后,我用

$.sidr("toggle","sidr-0");

而不是

$( "#sidr-0" ).trigger( "click" );

而且有效。 顯然,這與在移動設備上准備好文檔以及移動瀏覽器對ajax頁面加載的使用有關,這導致click()被提前觸發。 我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM