我正在使用一个名为云缩放的插件。问题是,当DOM准备就绪时,它会附加到class="cloud-zoom"
的任何内容。我的问题是我没有在渲染时将该类附加到DOM元素。它是动态附加的。因此,我需要以某种方式将.live()与它混合使其工作:
$(document).ready(function () {
$('.cloud-zoom, .cloud-zoom-gallery').CloudZoom();
});
.live()需要一个事件。我不确定如何在任何使用类cloud-zoom注入DOM的元素上指定一个名为invoke CloudZoom()的事件。
答案 0 :(得分:5)
你不能在这里使用.live()
,它以一种非常不同的事件驱动的特定方式工作。对于动态元素上的插件,有两个选项,要么在新元素进入时重新运行此代码,例如在ajax success
处理程序中,要么使用the .livequery()
plugin,如下所示:
$(document).ready(function () {
$('.cloud-zoom, .cloud-zoom-gallery').livequery(function() {
$(this).CloudZoom();
});
});
答案 1 :(得分:0)
我认为它可能是这样的:
$(document).ready(function () {
$('.cloud-zoom, .cloud-zoom-gallery').live(function(){
$(this).CloudZoom();
});
});
好的,没关系,它期待一个事件。我在考虑jQuery Livequery插件,它接受没有事件的匿名函数
答案 2 :(得分:0)
如果上述方法不起作用,您可以试试这个:
$(document).ready(function () {
$('.cloud-zoom, .cloud-zoom-gallery').live(function(){
$(this).CloudZoom();
}).trigger('click');
});
只需在最后添加触发器点击,对我有用。