2013-07-30 184 views
0

我试图创建一个表,其中有几个链接出现onHover并隐藏onleave。我实现了这两个函数JavaScript onmouseleave和onmouseenter在Firefox和IE9中工作,但不在Chrome中?

<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> 

我使用的引导框架。 此代码完美适用于IE9和Firefox

+0

是否使用:关于这里COMPAT http://api.jquery.com/hover/

更多信息任何引导的JavaScript?在这种情况下,jQuery已经是必需的了,当你这样做时,你可以从中受益。 – David

+0

我不太了解jquery。不,我没有使用jQuery。但是,我已经从code.jquery.com导入了jquery文件。 –

回答

2

mouseentermouseleave事件在Chrome(和其他浏览器)中不可用。你应该使用一个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()

更多信息:https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/mouseenter#Browser_compatibility

+0

您可以在JQuery中帮助编写这样的东西,我只需要一个例子来接近我的解决方案。我在JS方面并不是很熟练。 –

+0

@UsmanTahir当然,请参阅我的编辑。 – David

+0

工作:) 只需要现在添加鼠标离开。 谢谢 –

相关问题