2011-03-03 60 views
2

嗨,在页面呈现后附加onmouseover?

当页面第一次被渲染我的div元素看起来是这样的:

<div onmousedown="this.className='showhideExtra_down_click';" 
    onmouseout="this.className='showhideExtra_down';" 
    onmouseover="this.className='showhideExtra_down_hover';" 
    class="showhideExtra_down" id="extraFilterDropDownButton">&nbsp;</div> 

然后我手动更新onmouse用JavaScript属性,所以它看起来是这样的:

<div onmousedown="this.className='showhideExtra_down_click';" 
    onmouseout="this.className='showhideExtra_down';" 
    onmouseover="this.className='showhideExtra_down_hover';" 
    class="showhideExtra_down" id="extraFilterDropDownButton">&nbsp;</div> 

他们看起来一样,最大的不同在于,第一个人在徘徊时会改变班级,第二个人不会呢?在页面呈现后不可能设置它吗?

请注意:我需要IE6保持兼容,这就是为什么我用CSS悬停onmouse代替

BestRegards

编辑:这是我发现的作品篦,我haven't在IE6测试它只是尚未:

$("#extraFilterButton").hover(function() { 
       $(this).attr('class','showhideExtra_down_hover'); 
      }, 
      function() { 
       $(this).attr('class','showhideExtra_down'); 
      }); 
+2

你为什么使用内联JS? jQuery(当你的问题被标记)可以处理'hover()'函数。以及从元素标签中删除点击处理程序。 – 2011-03-03 19:26:48

回答

3

你可以使用:

$('#selector').live('mouseover',function(){//something todo when mouse over}) 

现场()允许动态变化

0

为了扩大对@ maniator的正确答案(您能为鼠标移开“这样做),我会用:

$("#some_id").live("hover", 
    function() { 
    // do on mouseover 
    }, 
    function() { 
    // do on mouseout 
    }); 
+0

会在IE6中工作吗? – 2011-03-03 19:41:31

+0

@Harsh我认为是这样,jquery已经得到了很好的ie 6支持,但是自从我尝试它以来已经有一段时间了。 – jeroen 2011-03-03 20:32:30

+0

这看起来格栅,但我不能得到第二个功能在mouseout上运行? – Banshee 2011-03-04 18:48:30

0

这是什么我结束了:

$("#extraFilterDropDownButton").hover(function() { 
     if($('#divCategoryFilter').css("display") == 'block'){ 
      $(this).attr('class','showhideExtra_up_hover'); 
     } 
     else{ 
      $(this).attr('class','showhideExtra_down_hover'); 
     } 
    }, 
    function() { 

     if($('#divCategoryFilter').css("display") == 'block'){ 
      $(this).attr('class','showhideExtra_up'); 
     } 
     else{ 
      $(this).attr('class','showhideExtra_down'); 
     } 
    }); 

但是,这是尚未在IE6中测试。