2017-03-28 20 views
0

我的一位用戶遇到了一個基於第二十三個WordPress主題的頁面問題。當他打開其中一個下拉菜單,然後點擊右鍵並在他的瀏覽器中選擇「在新選項卡中打開」,下拉菜單確實不會消失。它是冷凍卡住。您可以將鼠標移出下拉菜單,並且仍然顯示不應該出現的菜單。只有當你點擊其他地方時,菜單纔會消失。或者,如果使用鼠標的中鍵單擊,則會發生同樣的情況(因爲它基本上與「在新選項卡中打開」相同)。當選擇「在新標籤頁中打開」時,Wordpress TwentyThirteen主題下拉菜單被卡住

的情況下可以在官方twentythirteen演示頁被複制:https://twentythirteendemo.wordpress.com/ 只需將鼠標懸停在博客檔案並單擊鼠標中鍵出現的環節之一(或右鍵單擊,然後選擇「在新標籤中打開「)。然後將鼠標從下拉菜單移開,並且菜單將不會消失。看到下面的截圖:

enter image description here

要我看來,其原因是,該鏈接是活躍因爲它被點擊,因此不會消失。這個問題也出現在較新的WordPress主題中。

有沒有解決方案呢?當我爲其中一個子元素使用「在新選項卡中打開」時,如何防止下拉菜單卡住?或者是預期這種行爲?如果是,我應該告訴我的網站的用戶?

回答

0

這是用於觸摸設備。你可以在59行左右註釋掉或刪除這段代碼twentythirteen/js/functions.js:

if ('ontouchstart' in window) { 
    menu.find('.menu-item-has-children > a, .page_item_has_children > a').on('touchstart.twentythirteen', function(e) { 
     var el = $(this).parent('li'); 

     if (! el.hasClass('focus')) { 
      e.preventDefault(); 
      el.toggleClass('focus'); 
      el.siblings('.focus').removeClass('focus'); 
     } 
    }); 
} 

// Better focus for hidden submenu items for accessibility. 
menu.find('a').on('focus.twentythirteen blur.twentythirteen', function() { 
    $(this).parents('.menu-item, .page_item').toggleClass('focus'); 
}); 
+0

謝謝,晚上會試試。只是一個問題:觸摸設備背後的意圖是什麼?這樣子菜單可以更容易導航? – beta

+0

還有一件事:我知道,直接更改父主題中的代碼並不是最佳實踐。我設立了一個兒童主題。我如何將這些更改應用於我的子主題(不提供/js/function.js)。 – beta

+0

在觸摸設備上,你沒有一個「懸停」,因此第一次輕觸將被用作一個觸發打開子菜單。 –

相關問題