2011-11-17 45 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