我在javascript中制作了一些便利贴纸。
当屏幕上有多个便签时,我想要提前选择一个。 IE浏览器。将z-index提高到高于其他粘滞便笺。 目前我用CSS做这个:hover,这有点烦人。我想在javascript / jquery中做到这一点。我试着用focus()和blur()
做addClass / removeClass这是我到目前为止所拥有的
$('.darkYellow').click(function() {
$(this).focus(function() {
$(this).addClass("index");
});
});
$('.darkYellow').blur(function() {
$(this).removeClass("index");
});
更新了并感谢Christoph http://jsfiddle.net/EnigmaMaster/aQMhk/6/
答案 0 :(得分:8)
类选择器以.
字符开头,类名不是(好吧,他们可以,但这样就是疯狂)。
$(this).addClass("index")
答案 1 :(得分:2)
答案 2 :(得分:1)
在实际存在便签之前,您正在调用$('.darkYellow').click()
。 .click()
将在调用时向与选择器匹配的每个元素添加一个事件。你想要的是.live()
之类的东西,它将处理所有元素,现在和将来的等等。
$('.darkYellow').live('click', function() {
$(this).focus(function() {
$(this).addClass("index");
});
});
<强>更新强>
尝试:
$('.darkYellow').live('click', function() {
$(this).addClass("index");
});
$('.darkYellow').live('blur', function() {
$(this).removeClass("index");
});
正如其他人所指出的,对.focus()的调用应该是不必要的。
答案 3 :(得分:1)
虽然目前我不知道,为什么.on()
不起作用(这应该是首选方法!),以下代码应该有效:
$('.darkYellow').live("click", function() {
$(".index").removeClass("index");
$(this).addClass("index");
});
这就是你所需要的一切。
<强> DEMO 强>