JavaScript onmouseleave和onmouseenter在Firefox和IE9中工作但在Chrome中没有?

时间:2013-07-30 23:07:04

标签: javascript google-chrome web

我试图创建一个表,其中有几个链接出现在onHover上并再次隐藏。我实现了这两个函数

<script type="text/javascript">
    function hide(cls, no) {
        var select = '.' + cls + no;
        $(select).hide();
    }
    function show(cls, no) {
        var select = '.' + cls + no;
        $(select).show();
    }           
</script>

我的HTML代码是

<tr onmouseenter="show('inv', 1)" onmouseleave="hide('inv', 1)" >   
    <td width="30%">
            <a class="single_image" href="img/img1-big.png"><span class="icon-picture"></span> Image1.jpg</a>
        </td>
        <td width="40%" align="center">
        <div class="button-col">
            <a href="#" class="inline-buttons inv1"><span class="icon-pencil"></span> Rename </a>
            <a href="#" class="inline-buttons inv1"><span class="icon-arrow-down"></span> Download </a>
            <a href="#" class="inline-buttons inv1"><span class="icon-share"></span> Share </a>
            <a href="#" class="inline-buttons inv1"><span class="icon-trash"></span> Delete </a>
        </div>
    </td>
</tr>

我正在使用Bootstrap框架。 此代码在IE9和Firefox上完美运行

1 个答案:

答案 0 :(得分:2)

Chrome(和其他浏览器)中无法使用mouseentermouseleave个事件。你应该使用一个规范化这个的javascript框架,比如jQuery。

使用jQuery,尝试类似:

<tr data-no="1" data-cls="inv">

$(function() {
    $('tr').each(function() {
        var $target = $('.' + $(this).data('cls') + $(this).data('no'));
        $(this).hover(
            function() { $target.show(); },
            function() { $target.hide(); }
        );
    });
});

有关.hover()的更多信息:http://api.jquery.com/hover/

有关compat的更多信息,请访问:https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/mouseenter#Browser_compatibility