我写了一个代码,点击一个项目显示一个上下文菜单,如div,使用户可以剪切和粘贴一个列表项,我将禁用类添加到div中与粘贴操作相关的按钮。但是当选择了某些内容时,我想删除“禁用”类以启用粘贴按钮。代码如下:
HTML:
<div id="contextMenu" class="text-center" style="display: none; z-index: 1001; width: 242px;box-shadow:#D3D3D3 0px 0px 10px 4px; background-color: #FDFFC7; padding: 15px;">
<a class="btn btn-primary" style="margin: 3px 6px 3px 0px;" href="#" id="cut"><i class="fa fa-cut fa-lg"></i> Kes</a>
<div class="btn-group" style="margin: 3px 0px 3px 6px;">
<button type="button" class="btn btn-success disabled" id="InsertInto" title="Kestiğini kategoriyi seçtiğiniz kategorinin içine yapıştırır."><i class="fa fa-paste fa-lg"></i> Yapıştır</button>
<button type="button" class="btn btn-success dropdown-toggle disabled" data-toggle="dropdown"><span class="caret"></span></button>
<ul class="dropdown-menu" role="menu">
<li><a href="#" title="Seçtiğiniz kategorinin Üstüne ekler" id="AddAbove"><i class="fa fa-level-up fa-lg"></i> Üstüne Ekle</a></li>
<li><a href="#" title="Seçtiğiniz kategorinin Altına ekler" id="AddBelow"><i class="fa fa-level-down fa-lg"></i> Altına Ekle</a></li>
</ul>
</div>
JS:
$(document).on('click', '.ContextMenu', function () {
event.preventDefault();
var anySelected = $('.selected').length;
if (anySelected > 0) {
$("button", "#contextManu").removeClass('disabled');
}
var widgetPosition = $('#contextMenu').parent().offset();
$('#contextMenu').css('position', 'absolute');
var currentPosition = $(this).offset();
var contextLeft = (currentPosition.left) - $('#contextMenu').width() - widgetPosition.left - 10;
var contextTop = (currentPosition.top + 80) - widgetPosition.top;
$('#contextMenu').css('left', contextLeft);
$('#contextMenu').css('top', contextTop);
$('#contextMenu').slideDown(300);
$selectedListItem = $(this).parents('div.categoryItemContainer').parent();
});
我使用google chrome浏览器跟踪代码,$(“button”,“#contentMuu”)在contextMenu div中创建了两个按钮,但没有更改它。
答案 0 :(得分:11)
此行中的选择器中有拼写错误:
$("button", "#contextManu").removeClass('disabled');
#contextManu
需要将a
更改为e
,如此:
$("button", "#contextMenu").removeClass('disabled');
答案 1 :(得分:1)
您也可以使用toggleClass。我最近发现自己的宝石。
$('button', '#contextMenu').toggleClass('disabled');
From the docs: 在匹配元素集中的每个元素中添加或删除一个或多个类,具体取决于类的存在或switch参数的值。
所以,你甚至不需要添加&#34;禁用&#34;到你的元素开始。