2011-11-17 44 views
1

我正在使用jquery printElement插件來打印我的視圖的div。目前它工作正常,但覆蓋的CSS似乎並不工作,如果我更新部分視圖的div html。打印元素背景css在部分頁面更新後未被覆蓋

我的HTML結構:

<div id="shopfoods"> 
    <div id="shoplistcontent"> 
    <table id="shopfoodtable"> 

我得到了shopfoods DIV的背景圖像,但我不希望在打印中顯示的背景,所以我用另一個CSS覆蓋打印:

$('#printitem').click(function() { 
     $('#shopfoods').printElement({ 
      pageTitle: 'Your Shop List.html', 
      leaveOpen: true, 
      printMode: 'popup', 
      overrideElementCSS: ['../../Content/PrintShopList.css'] 
     }); 
    }); 

這工作得很好,但如果我這樣做表明這會導致這樣一個頁面的局部修改其他動作:

// ... some ajax call 
    success: function (result) { 
     $('#shopfoods').html(result); 
    } 

更新後,如果再次單擊打印件,打印將包含shopfood的背景圖像。 (但是,print.css中的其他樣式工作)

我無法確定這裏出了什麼問題,它是點擊功能,ajax,css還是這是一個插件錯誤?

回答

0

當您重新創建#shopfoods(通過ajax)時,您之前的插件初始化printElement可能會丟失。

也許您需要更改$( '#printitem')點擊(...),以$( '#printitem')生活( 「點擊」,...)

看看這個: http://api.jquery.com/live/

+0

我認爲這是正確的。儘管我需要指出的是,從jQuery 1.7開始,.live()方法已被棄用。使用.on()附加事件處理程序。老版本的jQuery用戶應該首先使用.delegate(),而不是.live()。' – OptimusCrime

+0

嗨,感謝您的幫助,但我試過了,問題仍然存在。 – shennyL