Jquery ui `removeClass` 不起作用

标签 jquery jquery-ui

这是我的 HTML

<div id="c">
    <div class="base">
        <div class="cb out" id="red" data-color="Red">
        </div>
    </div>
    <div class="base">
        <div class="cb out" id="green" data-color="Green">
        </div>
    </div>
    <div class="base">
        <div class="cb out" id="blue" data-color="Blue">
        </div>
    </div>
</div>

我想使用 jquery-ui 删除 out 类并添加 in 类,效果良好。这是代码:

    //focuse mouseower
    function fmo(element) {
        var $element = $(element);
        $element.removeClass("out");
        $element.addClass("in",300);
    }

    //blur mouseout
    function bmo(element) {
        var $element = $(element);
        $element.removeClass("in");
        $element.addClass("out",300);

    }
    function ready() {
        $(".cb").mouseover(function () { fmo(this); });
        $(".cb").mouseout(function () { bmo(this); })
        $(".cb").focus(function () { fmo(this); });
        $(".cb").blur(function () { bmo(this); });
    }
    $(function () { ready(); });

上面的代码不起作用,但如果我删除 jquery-ui 引用并仅使用 jquery 来完成此代码的工作:

    //focuse mouseower
    function fmo(element) {
        var $element = $(element);
        $element.removeClass("out");
        $element.addClass("in");
    }

    //blur mouseout
    function bmo(element) {
        var $element = $(element);
        $element.removeClass("in");
        $element.addClass("out");

    }
    function ready() {
        $(".cb").mouseover(function () { fmo(this); });
        $(".cb").mouseout(function () { bmo(this); })
        $(".cb").focus(function () { fmo(this); });
        $(".cb").blur(function () { bmo(this); });
    }
    $(function () { ready(); });

它有效。我不知道该怎么办,但我真的需要帮助。 更新 这是我的风格(我认为这可能会影响结果)

<style type="text/css">
    .out {
        display: inline-block;
        margin-left: 5px;
        background-color: #56a100;
        opacity: 0.5;
        margin: auto;
        width: 70%;
        height: 70%;
    }

    .in {
        display: inline-block;
        margin-left: 5px;
        background-color: #56a100;
        opacity: 1;
        margin: auto;
        width: 100%;
        height: 100%;
    }

    .base {
        display: inline-block;
        width: 50px;
        height: 50px;
        margin-left: 5px;
        margin-top: 100px;
    }
</style>

我上传了代码here

最佳答案

试试这个

$(function(){ 
    $(".cb").on('mouseenter', function(){ 
        $(this).stop(1,1).removeClass("out").addClass("in", 300);
    })
    .on('mouseleave', function(){ 
        $(this).stop(1,1).removeClass("in").addClass("out",300); 
    });
});​

DEMO.

关于Jquery ui `removeClass` 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592318/

相关文章:

javascript - 使用点击事件如何更改图像?

jquery - 动画高度从下到上而不是从上到下

javascript - 如何使用 jQuery 动态获取产品名称和图像?

jquery - "oCol is Undefined"使用数据表和 jQuery Ui 对话框

jquery - 如何让文本停留在 jQuery UI Accordion 图标的右侧?

javascript - 在 CSS Transition 之前克隆元素返回应用了过渡的元素

javascript - 从对象运行 jQuery Ajax

jQuery DatePicker 如何在浏览日历时禁用自动日期选择?

css - 如何让 div float 在 jQuery UI 对话框上方?

angularjs - 可拖动的 Angular UI 模态失去焦点