2013-07-26 111 views
0

我在fancybox中加載<div><div>有背景顏色Red。但是css並沒有加載它。什麼可能是錯的?fancybox不顯示div顏色?

<div id="divForm" style="display: none;" class="error"> 
    An error has occurred on the page. 
</div> 
function display_dialog() { 
     $.fancybox.open({ 
      modal:true, 
      content: $("#divForm").html(), 
      padding: 5, 
      openEffect: 'fade', 
      openSpeed: 'normal', 
      closeEffect: 'elastic', 
      closeSpeed: 'slow' 

     }); 
} 
.error { 
    border: 1px solid; 
    margin: 10px 0px; 
    padding:15px 10px 15px 50px; 
    background-repeat: no-repeat; 
    background-position: 10px center; 
    color: #D8000C; 
    background-color: #FFBABA; 
} 

enter image description here

+0

你有什麼樣'.css'爲'#divform'?或者你可以嘗試:'#divForm .error {...}' – artSx

+0

不確定。但嘗試'$(「#divForm」)。text()'而不是'$(「#divForm」)。html()' –

回答

0

您使用content: $("#divForm").html()。這會從#divForm內部獲得html,而不是實際的#divForm。所以有了這個,你就失去了所有的風格,因爲沒有.error類可以匹配。

您應該將實際的#divForm元素設置爲內容,而不是#divForm中的內容。

jQuery docs

的.html()

獲得的第一個元素的HTML內容匹配的元素集合

的。如果在你的HTML你有一個直接的父通過#divForm,選擇該父母並在其上使用.html()。例如:

<div class="bananas"> 
    <div id="divForm" style="display: none;" class="error"> 
     An error has occurred on the page. 
    </div> 
</div> 

然後做:

content: $(".bananas").html();

+0

我刪除了'.html()'。仍然相同 – James123

+0

如果在你的HTML中你有一個直接父''divForm',選擇那個父母並且使用'.html()'就可以了。 –

0

僅僅通過

href: "#divForm", 

更換

content: $("#divForm").html(), 

JSFIDDLE

另外,請記住,如果您使用的是modal: true,則可能需要設置手動或自動關閉方框的方法。

0

試試這個:

<div id="divForm" style="display: none;"> 
    <div class="error"> 
     An error has occurred on the page. 
    </div> 
</div>