2015-05-14 92 views
1

我已經添加了一個使用jQuery的點擊事件來改變我的CSS。點擊工作和CSS更改,但隨後jQuery繼續運行並最終將CSS恢復爲原始狀態。jQuery恢復CSS回到原來的狀態

jQuery代碼:

$('.myClass').click(function(){ 
     $('.myClass').css({"visibility":"hidden"}); 
    }); 

CSS代碼:

.myClass { 
    height: 10px; 
    width: 10px; 
    background: red; 
    visibility:visible; 
    } 

就像我說的,點擊作品和元素獲取隱藏。但是,當jQuery完成代碼運行時,它會立即恢復。使用谷歌瀏覽器的調試工具,我發現這是jQuery代碼中的一個要點,它將CSS恢復爲讓元素可見。

jQuery的代碼(行4116):

if (!(eventHandle = elemData.handle)) { 
     eventHandle = elemData.handle = function(e) { 
      // Discard the second event of a jQuery.event.trigger() and 
      // when an event is called after a page has unloaded 
      return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? 
line 4116  jQuery.event.dispatch.apply(elem, arguments) : undefined; 
     }; 
    } 

我想我不明白什麼是與這個jQuery代碼發生,爲什麼我的CSS得到恢復回來?任何幫助理解都非常感謝。

+0

你可以發佈你所有的jQuery和你的html嗎?我已經運行這個代碼,它適用於我。 – Brino

回答

0

您可能會嘗試切換具有'visibility:hidden'的類以完全避免該問題。

#CSS 
.vh{ 
    visibility:hidden 
    #or you could use display:none 
} 

#Javascript 
$('.myClass').click(function(){ 
    $('.myClass').toggleClass('vh'); 
}); 

讓我知道這是否對你有幫助。 -Mike

0

我的猜測是,當你的頁面運行時,還有一些其他的CSS或jQuery正在運行並覆蓋'visibility:hidden'。我也建議切換你的班級並使用'display:block'和'display:none'over'visibility:hidden'。

如果您提供了HTML和jQuery的其餘部分,我可能會給出更準確的答案。