Javascript粘滞便笺

时间:2012-04-19 13:37:26

标签: javascript jquery

我在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/

4 个答案:

答案 0 :(得分:8)

类选择器以.字符开头,类名不是(好吧,他们可以,但这样就是疯狂)。

$(this).addClass("index")

答案 1 :(得分:2)

对于addClass,不需要包含'。'

简单地

$(this).addClass("index");

http://api.jquery.com/addClass/

答案 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");
});

这就是你所需要的一切。

    点击
  1. 直播事件处理程序(首选使用on())
  2. 查找索引备注并删除类
  3. 将Class添加到当前“clicked”元素
  4. <强> DEMO