- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我创建了 DIV.cb-toggle,当用户将鼠标悬停在这个 div 上时,它会变成橙色,当他们悬停在这个 div 上时,它会变回灰色,当用户点击这个 div 时,它会变成橙色蓝色,告诉用户它已被选中。所以当它没有被选中时,它有 mouseenter mouseleave 动画,但是当它被选中时我想取消绑定(bind)这些事件,我不希望 hover 事件在它被选中时起作用,只有当它没有被选中时。做我想完成的事情的最好方法是什么?我想出了下面的代码,但我很确定这是一种可怕的方法,我不知道该怎么做。非常感谢您的帮助。
$('.cb-toggle').toggle(function() {
$(this).animate({"background":"blue", "color":"#fff;"});
$(".cb-toggle").unbind("click.myfadee");
}, function() {
$(this).animate({"background":"gray", "color":"#fff;"});
$('.cb-toggle').trigger('mouseenter');
});
});
$(".cb-toggle").bind("click.myfadee", function(){
$(".cb-toggle").mouseenter(function() {
$(this).animate({"background":"orange", "color":"#fff;"});
}).mouseleave(function() {
$(this).animate({"background":"gray", "color":"#fff;"});
});
});
我需要保留背景颜色动画,它需要淡出。
最佳答案
我会使用 CSS 作为样式来简化您的整个设置,而无需取消/重新绑定(bind),如下所示:
.cb-toggle { background: blue; color: #fff; }
.cb-toggle.active { background: gray; }
.cb-toggle.active:hover { background: orange; }
然后你可以这样做:
$('.cb-toggle').click(function() {
$(this).toggleClass("active");
});
这种方法还可以让您将所有样式、颜色等卸载到 CSS,这意味着当您决定调整颜色或任何其他样式时,不需要更改 JavaScript :)
或者,如果您需要支持 IE6,请添加 .live()
仅在具有 .active
类的那些上触发的悬停处理程序,如下所示:
$(".cb-toggle.active").live('mouseenter', function() {
$(this).addClass('hover');
}).live('mouseleave', function() {
$(this).removeClass('hover');
});
与匹配的 CSS:
.cb-toggle.active.hover { background: orange; }
关于javascript - Jquery:小绑定(bind)悬停/解除绑定(bind)代码片段,几行长,不知道出了什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3752020/
我写了一个脚本,它在二进制文件和脚本文件中存储数字签名。这个问题仅与脚本有关:目前,所有这些签名都存储在一行(注释)中,例如: #!/usr/bin/perl print "Hello" print
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
这个问题在这里已经有了答案: Applying an ellipsis to multiline text [duplicate] (23 个回答) 关闭 7 年前。
我使用 Visual Studio Code 已有一段时间了。从昨天开始,代码格式没有像我预期的那样工作,但我没有更改任何配置。 这是没有格式化的文件 格式化后: 这些是我修改的设置 我可以做些什么来
我是一名优秀的程序员,十分优秀!