2015-10-06 24 views
4

Here's a fiddle,並且如果代碼段無法正常工作: 鉻元素隱藏,不應該影響我的問題

$(function() { 
 
    $('div').hover(
 
    function() { 
 
     $(this).append("<div id='xxx'>ccc</div>") 
 
    }, 
 
    function() { 
 
     $('#xxx').remove(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td> 
 
     <div> 
 
     <a href="xxx"> 
 
      <img src="xxx">aaa 
 
     </a> 
 
     bbb 
 
     </div> 
 
    </td> 
 
    </tr> 
 
</table>

當我徘徊了DIV,的文本部分鏈接aaa消失。出於某種原因,我變成了:hover{visibility:visible}
它與元素ID或文本或鏈接無關。
這是Chrome的問題,Firefox的工作原理應該如此。

這是一個bug還是它是一個js問題?爲什麼Chrome會這樣做?

+0

對我的作品 - 鉻44.0.2403.130 – OddDev

+0

45.0.2454.101米,我不是唯一一個誰看到這個問題 – Qiao

+0

@Qiao沒有,我也有同樣的問題,奇怪的^,〜 – vivekkupadhyay

回答

0

有趣的行爲。我試圖添加這個,並且顯示aaa的文本部分。

function(){ 
     $(this).clearfix:after { 
     /* visibility: hidden; */}} 
+0

什麼是'clearfix'? – Qiao

+0

clearfix是元素自動清除其子元素的一種方式,因此您不需要添加其他標記。 –

1

嘗試使用此:

$('div').hover(
    function() { 
     $(this).parent().append("<div id='xxx'>ccc</div>"); 
    }, 
    function() { 
     $('#xxx').remove(); 
    } 
); 
2

周邊 'BBB' 與span修復該問題:方法之後

$(function() { 
 
    $('div').hover(
 
    function() { 
 
     $(this).append("<div id='xxx'>ccc</div>") 
 
    }, 
 
    function() { 
 
     $('#xxx').remove(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td> 
 
     <div> 
 
     <a href="xxx"> 
 
      <img src="xxx">aaa 
 
     </a> 
 
     <span>bbb</span> 
 
     </div> 
 
    </td> 
 
    </tr> 
 
</table>

+0

謝謝,我現在用它作爲快速補丁 – Qiao

+0

@喬老實說,這不是一個補丁;錯誤是由於語法無效造成的。你不能指望jQuery爲每一種情況做好準備,這是它的一個未捕獲的異常。 Gecko按預期處理它,因爲它不會將任何屬性應用於文本,就像在本地查看php文件時一樣,您只會看到文本。儘管Webkit試圖理解你給出的內容並應用了一些屬性,這會讓jQuery感到困惑。我沒有任何消息來源,因此如果我錯了,那麼糾正我:) – jaunt

2

用戶解決這一問題

<script> 
$('div').hover(
    function() { 
     $(this).after("<div id='xxx'>ccc</div>") 
    }, 
    function() { 
     $('#xxx').remove(); 
    } 
); 
</script> 
+0

是的,它的工作原理... – Qiao

+0

如果你的問題解決了,請接受我的答案 –

+0

我沒有想辦法解決這個問題,你可以用很多方式做不同的事情。 'append'和'after'不一樣,我不得不改變我的代碼的其他部分。我需要知道我的代碼有什麼問題。但你可以回覆它是一個鉻錯誤,我會接受它)的確是。 – Qiao