2010-02-27 64 views
0

有人可以告诉我为什么下面的例子在Firefox而不是在IE 8中工作? 只有content_1在IE 8中正常工作。jQuery 1.3.2和IE 8隐藏问题()和show()

Thx vijey。

<script type="text/javascript"> 

$(function(){ 
    $("#sortable").sortable({handle: '#dragable'}); 
}); 


$(function(){ 

    var v; 

    $('div[id^="content_"]').hover(

     function() { 

     v = $(this).attr('id'); 
      $('#'+v+' #menu').show(); 
      $('#'+v+' #dragable').show(); 
     }, 
     function() { 
      $('#'+v+' #menu').hide(); 
      $('#'+v+' #dragable').hide(); 
     } 
    ); 

}); 

</script> 


<body> 

<div id='sortable'> 

    <div id='content_1'> 

     <div id='menu' style='display:none;'> 
      <div>edit</div> 
      <div>add</div> 
      <div>delete</div> 
     </div> 

     <div id='content'>Content_1</div> 

     <div id='dragable' style='display:none;'>[drag]</div> 
    </div> 




    <div id='content_2'> 

     <div id='menu' style='display: none;'> 
      <div>edit</div> 
      <div>add</div> 
      <div>delete</div> 
     </div> 

     <div id='content'>Content_2</div> 

     <div id='dragable' style='display:none;'>[drag]</div> 
    </div> 





    <div id='content_3'> 

     <div id='menu' style='display: none;'> 
      <div>edit</div> 
      <div>add</div> 
      <div>delete</div> 
     </div> 

     <div id='content'>Content_3</div> 

     <div id='dragable' style='display: none;'>[drag]</div> 
    </div> 

</div> 



</body> 

回答

0

你不能有相同ID的多个元素,这是无效的HTML,ID必须是唯一的。你的菜单元素必须是一个类,而不是一个ID,像这样:

<div id='content_1'> 

    <div class='menu' style='display: none;'> 
     <div>edit</div> 
     <div>add</div> 
     <div>delete</div> 
    </div> 

    <div class='content'>Content_2</div> 

    <div class='dragable' style='display:none;'>[drag]</div> 
</div> 

和jQuery这样的:

$(function(){ 
    $('div[id^="content_"]').hover(
     function() { 
      $(this).find('.menu, .dragable').show(); 
     }, 
     function() { 
      $(this).find('.menu, .dragable').hide(); 
     } 
    ); 
}); 
+0

THX了很多,它工作正常 ;-) – vijey 2010-02-27 00:43:01