簡體   English   中英

jQuery Click Event僅適用於風景(iPhone)

[英]jQuery Click Event only works in Landscape (iPhone)

我被要求在工作中修補一個寫得很差的響應式網站,而被jQuery click事件的問題困擾。

該事件在橫向模式下的iPhone上運行正常,但在縱向模式下則無任何作用。

這是jQuery:

if (width <= 480) {
    function menu(e) {
        e.PreventDefault();
        $('#menu-item-93 .sub-menu').slideToggle('fast');
    }

    $('.nav-cont').addEventListener('click', menu(e));
    $('.nav-cont').addEventListener('touchstart', menu(e));
}

與header.php文件相關的部分(我提到過,這是一個Wordpress網站)

<nav id="main" class="main clearboth">
    <?php 
        wp_nav_menu( array( 
            'sort_column' => 'menu_order', 
            'theme_location' => 'primary', 
            'after'=>'<img src="'.template_url('images/button/link-445x68.png').'" class="show-480" />'
        ) );
    ?>
</nav>
<div class="nav-cont">
    <div class="nav-text show-480">NAVIGATION</div>
    <img class="nav-button show-480" src="<?php echo template_url('images/button/navigation-closed-nt-445x52.png');?>" />
</div>

有人知道為什么此觸摸事件僅在橫向模式下觸發嗎?

您的代碼以if (width <= 480) { 看起來它可以是有效的肖像,但不能在風景中使用,這就是問題所在。

這些行:

$('.nav-cont').addEventListener('click', menu(e));
$('.nav-cont').addEventListener('touchstart', menu(e));

應該:

$('.nav-cont').addEventListener('click', menu);
$('.nav-cont').addEventListener('touchstart', menu);

甚至:

$('.nav-cont').on('click', menu);
$('.nav-cont').on('touchstart', menu);

當前代碼將調用menu函數的結果添加到事件處理程序中。

最后,通過瀏覽該網站上舊開發機構留下的多個javascript文件,解決了該問題。 我發現此選擇器上有多個單擊處理程序實例,它們相互矛盾。 我刪除了其他人,ba,它起作用了。

它甚至以我最初打算與基本版本一起工作的方式工作

$('.nav-cont').click(function() {
});

事件處理程序。

暫無
暫無

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

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