2017-07-07 76 views
-5

我想使用它的ID來禁用子頁面中的主菜單項。試過「setAttribute」和「disabled」選項。如何禁用在子頁面中使用JavaScript的主菜單?

document.getElementById("bloc_menu:j_id14").setAttribute("disabled","disabled"); 
document.getElementById("bloc_menu:j_id14").disabled = true; 

歡迎任何建議,謝謝你。

+0

分享您的演示與元素'bloc_menu:j_id14'這是不工作 – C2486

+0

的'disabled'屬性僅適用於一對夫婦的元素,所有這些都與形式。菜單通常不是表單,所以我想知道你的實際HTML是什麼樣的。 – vi5ion

+0

什麼類型的元素是document.getElementById(「bloc_menu:j_id14」)?我猜它不支持'disabled'財產 –

回答

0

我仍然不是100%確定你要做什麼或爲什麼你不能處理這個服務器端,但我已經做了一個可以禁用/啓用的簡單菜單的例子。

var $mainMenu, $links; 
 

 
$(function() { 
 
    $mainMenu = $('#main-menu'); 
 
    $links = $mainMenu.find('.menu-item__link').each(function() { 
 
    var $link = $(this); 
 
    $link.data('href', $link.attr('href')); 
 
    }); 
 
    $('#toggle-main-menu').on('click', function() { 
 
    toggleMainMenu(); 
 
    }); 
 
}); 
 

 
function toggleMainMenu() { 
 
    if ($mainMenu.hasClass('disabled')) { 
 
    $mainMenu.removeClass('disabled'); 
 
    restoreLinks(); 
 
    } 
 
    else { 
 
    $mainMenu.addClass('disabled'); 
 
    removeLinks(); 
 
    } 
 
} 
 

 
function removeLinks() { 
 
    $links.removeAttr('href'); 
 
} 
 

 
function restoreLinks() { 
 
    $links.each(function() { 
 
    var $link = $(this); 
 
    $link.attr('href', $link.data('href')); 
 
    }); 
 
}
#main-menu .menu-item__link { 
 
    color: #000; 
 
} 
 

 
#main-menu.disabled .menu-item__link { 
 
    color: #ccc; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="main-menu"> 
 
    <li class="menu-item"> 
 
    <a class="menu-item__link" href="#someLink1">Some link 1</a> 
 
    </li> 
 
    <li class="menu-item"> 
 
    <a class="menu-item__link" href="#someLink2">Some link 2</a> 
 
    </li> 
 
    <li class="menu-item"> 
 
    <a class="menu-item__link" href="#someLink3">Some link 3</a> 
 
    </li> 
 
</ul> 
 
<button id="toggle-main-menu">Toggle the menu</button>

+0

對我來說,它是用簡單的code.document.getElementById(「bloc_menu:j_id14」)。style.pointerEvents ='none'; –

+0

這隻適用於鼠標事件。如果你選擇你的鏈接並點擊鍵盤上的Enter鍵,你仍然可以觸發鏈接。 – vi5ion

+0

隨着變革的重點,我們可以管理。謝謝您的意見。 –

相關問題