jQuery中的行为不一致,具体取决于浏览器

时间:2010-07-20 12:38:05

标签: javascript jquery cross-browser

我有我的jquery:

$('.category-block').mouseover(
        function (e) {
            $(this).find('.b-expand').show();

    });

        $('.category-block').mouseout(
        function (e) {
            $(this).find('.b-expand').hide();

    });

示例html:

<div class="category-block" id="category-1">
        <a href="#">Mod</a>
        <div class="b-expand" id="block-expand-1">
         TEST
        </div>
    </div>

上述内容似乎适用于Firefox和IE,但不适用于Safari和Chrome。有什么想法吗?

感谢。

编辑:

如果我将js更改为:

$('.category-block').mouseover(
        function (e) {
            $('.b-expand').show();

    });

        $('.category-block').mouseout(
        function (e) {
            $('.b-expand').hide();

    });

它会工作,但当然显示所有b-expand不仅仅是父母下的那个。因此问题在于发现吗?

没有css属性没有显示它。此外,没有抛出js错误。

2 个答案:

答案 0 :(得分:0)

你可能想要的是:

$('.category-block').hover(function() {
    $(this).find('.b-expand').show();
}, function() {
    $(this).find('.b-expand').hide();
});

答案 1 :(得分:0)

我刚刚在IE 8,FF 3.66,chrome 5.0.375 ......以及safari 4中测试过它。

你可能在页面上的其他地方有一些脚本错过了;在页面的某个地方。

失踪;并且这些并不总是显示为脚本错误。

你也可能错过了一个混乱页面结构的或一个similer html。