什么在mouseover事件jquery上显示边框

时间:2012-05-30 10:19:47

标签: javascript jquery

    $(document).ready(function () {
        $("[data-role=content]").not("#ft").children().live({ 
        mouseover: function () { $(this).css({ border: "1px solid gray" }); }, 
        mouseleave: function () { $(this).css({ border: "0" }); } });
    });

这不起作用。边界没有显示。任何人都可以告诉我我错在哪里?

1 个答案:

答案 0 :(得分:1)

来自.live documentation

  

不支持链接方法。例如,$("a").find(".offsite, .external").live( ... );无效,无法按预期工作。

因此$(...)....children().live()无效。

改为使用.on

$("[data-role=content]").not("#ft").on( {
    mouseover: function () { 
        $(this).css({ border: "1px solid gray" }); 
    }, 
    mouseleave: function () { 
        $(this).css({ border: "0" }); 
    }
}, '[data-role=content] > *');

不幸的是,似乎不可能只使用> *作为事件委托的选择器。当然[data-role=content] > *只有在[data-role=content]元素没有嵌套时才能正常工作。

DEMO