javascript - Jquery .addClass 和 .removeClass 不工作?

标签 javascript jquery css html

<分区>


这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助 future 的读者。

关闭 7 年前

我写了一段代码,点击一个元素会显示一个像 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", "#contextManu") 在 contextMenu div 中找到了两个按钮,但没有更改它。

最佳答案

您的选择器在这一行有错别字:

$("button", "#contextManu").removeClass('disabled'); 

#contextManu 需要将 a 更改为 e,如下所示:

$("button", "#contextMenu").removeClass('disabled');

关于javascript - Jquery .addClass 和 .removeClass 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24912687/

上一篇:javascript - jQuery - 使用变量更改背景图像?

下一篇:HTML – 悬停时显示菜单

相关文章:

JavaScript == 未按预期工作

javascript - 没有滚动条的文本区域

javascript - 如何使用/jquery 为元素创建新的父类?

javascript - Rails3 中的 Google Instant 式搜索

html - 清除 :both not affecting columns correctly

css - apache 错误日志中使用 webfonts 时找不到文件错误

javascript - 如何使用Jquery高亮svg map ?

javascript - 如何使 iframe `srcdoc` 中的 href anchor 真正起作用

jquery - 如何在页面刷新时随机化 <li> 元素?

Javascript 视差在 Mac 上很慢