Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery.addClass和.removeClass不工作?_Javascript_Jquery_Css_Html - Fatal编程技术网

Javascript Jquery.addClass和.removeClass不工作?

Javascript Jquery.addClass和.removeClass不工作?,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我编写了一个代码,单击一个项目会显示一个类似div的上下文菜单,以便用户能够剪切和粘贴列表项目,我在div中添加了禁用的类,这些类与粘贴操作相关。但是当选择某个对象时,我想删除类“disable”以启用粘贴按钮。代码如下: html: <div id="contextMenu" class="text-center" style="display: none; z-index: 1001; width: 242px;box-shadow:#D3D3D3 0px 0px 10px 4px;

我编写了一个代码,单击一个项目会显示一个类似div的上下文菜单,以便用户能够剪切和粘贴列表项目,我在div中添加了禁用的类,这些类与粘贴操作相关。但是当选择某个对象时,我想删除类“disable”以启用粘贴按钮。代码如下:

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>
$(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');

您还可以使用toggleClass。我最近自己发现了那颗宝石

$('button', '#contextMenu').toggleClass('disabled');
根据类的存在或开关参数的值,从匹配元素集中的每个元素中添加或删除一个或多个类

因此,您甚至不需要首先在元素中添加“disabled”