簡體   English   中英

.unbind()不適用於event.preventDefault()

[英].unbind() is not working on event.preventDefault()

我有一個響應性Javascript文件,該文件在解除對jQuery基本功能的綁定方面能成功工作。

當瀏覽器設置為平板電腦時,導航將基於單擊切換,因此我禁用了鏈接到具有ul的任何li元素的功能。

$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').on('click', function(event) {
   event.preventDefault();
});

然后,當瀏覽器的大小超出平板電腦的限制時,我試圖以此重新啟用鏈接功能(我嘗試了3種不同的方式):

$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').unbind('on');

$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').unbind('click');

$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').on('click', function(event) {
   return true;
});

請讓我知道我是否還有其他可以提供的幫助

我可以在這里找到自己的問題的解決方案。 以為我會發布,以防萬一有人遇到類似問題。

我的自適應JavaScript每個屏幕尺寸都有2個功能。 我有這樣的事情:

function tabletInit() {
 // add jQuery that is supposed to fire within these constraints
    function mobileNavInit() {
    var submenus = $('.main-navigation .children');

    submenus.each(function() {
      var parentLink = $(this).prev(),
          parentHref = parentLink.attr('href'),
          overview = '<li class="overview"><a href="'+parentHref+'">Overview</a></li>';

      $(overview).prependTo($(this));
    });

    }

    $('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').on('click', function(event) {
   event.preventDefault();
});

}

function tabletClear() {
 // undo or 'unbind()' anything that should be cancelled out if tablet is sized above

$(overview)unbind('prependTo');
$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').unbind('click');

}

干擾是概述功能的解除約束之一。 盡管解除綁定的操作符合需要,但最終干擾了其他一些JavaScript。 所以我只是將其更改為:

$('.overview, .overview2').remove();

暫無
暫無

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

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