Javascript粘滞便笺
我在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/
虽然目前我不知道,为什么.on()
不起作用(这应该是首选的方法!),以下代码应该工作:
$('.darkYellow').live("click", function() { $(".index").removeClass("index"); $(this).addClass("index"); });
这就是你所需要的。
- 单击实时事件处理程序(首选使用on())
- 寻找索引笔记并删除类
- 将Class添加到当前“clicked”元素
DEMO
类选择器以a开头.
字符,类名不(好吧,他们可以,但这种方式是疯狂)。
$(this).addClass("index")
您正在调用$('.darkYellow').click()
在粘滞便笺实际存在之前$('.darkYellow').click()
。 .click()
将在调用时向每个与选择器匹配的元素添加一个事件。 你想要的是类似.live()
东西,它将处理所有元素,现在和未来Eg
$('.darkYellow').live('click', function() { $(this).focus(function() { $(this).addClass("index"); }); });
UPDATE
尝试:
$('.darkYellow').live('click', function() { $(this).addClass("index"); }); $('.darkYellow').live('blur', function() { $(this).removeClass("index"); });
正如其他人指出的那样,对.focus()的调用应该是不必要的。