2017-07-07 11 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とあなたのデモを共有する:' disabled'属性は唯一の形態に関連するすべてのそれらの要素のカップル、上で動作 – C2486

+0

を動作していないj_id14'を。メニューは通常はフォームではないので、実際の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

変更を重視して管理できます。コメントしてくださってありがとうございます。 –

関連する問題