colorbox与元素实时绑定'分组获胜'不起作用
colorbox bind on live with elements' grouping won't work
我正在使用众所周知的优秀jQuery Colorbox作为库。使用ajax将部分图像添加到页面中。我正在尝试将colorbox绑定到页面上所有新的和现有的图像,并将所有图像组合在一起。现在,我只成功地实现了这两个目标中的一个。使用此代码,所有图像都可以很好地分组到一个colorbox库中,但在向页面添加更多图像(通过ajax)后,colorbox根本不会绑定到它们:
$('a.exhibition').colorbox({
inline:true,
href:$(this).attr('href'),
opacity:0.5,
overlayClose:true,
rel:"hpexhibition"
});
使用此代码,在向页面添加更多图像后,图像将绑定到颜色框,但rel分组不起作用(甚至不适用于最初加载到页面的图像集):
$('a.exhibition').live('click', function() {
$.fn.colorbox({
inline:true,
href:$(this).attr('href'),
opacity:0.5,
overlayClose:true,
rel:"hpexhibition"
});
return false;
});
我也尝试过这个代码,但它是一样的-图像很好地绑定到了colorbox,但作为单个图像,而不是作为(rel)库:
$("ul#home-exhibition").on("click", "a[rel='hpexhibition']", function (event) {
event.preventDefault();
$.colorbox({
inline:true,
href:$(this).attr('href'),
opacity:0.5,
overlayClose:true,
rel:"hpexhibition"
});
});
我的图片库html标记是这样的:
<ul id="home-exhibition">
<li class="item">
<a class="exhibition" rel="hpexhibition" ref="3" href="#artitem-cb-details-3">
<img src="path/to/image53.jpg" alt="" />
</a>
<div style="display:none;">
<div id="artitem-cb-details-3" class="artitem-cb">
//Some data of image 3 here...
</div>
</div>
</li>
<li class="item">
<a class="exhibition" rel="hpexhibition" ref="4" href="#artitem-cb-details-4">
<img src="path/to/image4.jpg" alt="" />
</a>
<div style="display:none;">
<div id="artitem-cb-details-4" class="artitem-cb">
//Some data of image 4 here...
</div>
</div>
</li>
<li> ..... </li>
<li> ..... </li>
<li> ..... </li>
</ul>
有没有一种方法可以将这两者结合起来,使colorbox适用于页面上的所有图像——也适用于通过ajax添加的图像——并将所有图像分组在一起?我做不到。我相信应该有办法让它发挥作用。
可能有效的方法需要在加载新元素后重新初始化颜色框。
换句话说,你必须做:
$('a.exhibition').colorbox({
inline:true,
href:$(this).attr('href'),
opacity:0.5,
overlayClose:true,
rel:"hpexhibition"
});
ajax调用完成后。
看看colorbox的代码,我看不出其他简单的方法来处理你的案件。
将this而不是$('.colorbox').colorbox();
$('body').on('click', '.colorbox', function() {
$('.colorbox').colorbox({rel: $(this).attr('rel')});
});
我的解决方案
// This is the trick. Initialize but don't open
$('.colorbox').colorbox({open:false, rel:'gallery'});
// Handle click event
$('.colorbox').live('click',function(e){
$(this).colorbox({open:true, rel:'gallery'}); // now open colorbox
return false;
});
相关文章:
- PhoneGap读写文件获胜'不起作用
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- webpack-request(jquery)获胜'不起作用
- colorbox与元素实时绑定'分组获胜'不起作用
- jQuery验证插件停止表单提交,提交按钮获胜'不起作用
- 鼠标悬停功能获胜'不起作用
- Cucumber JS超时获胜'不起作用
- UIWebView调用带有参数的JS获胜'不起作用
- jquery id匹配但获胜'根本不起作用
- JQuery animate获胜'不起作用
- 用JavaScript更改按钮的背景颜色获胜'不起作用
- JQuery方法获胜'分配给这个变量后不起作用
- 骨干视图委派事件获胜'不起作用
- Jquery.show按钮获胜'不起作用
- HTML到嵌入式Flash-ExternalInterface回调获胜'不起作用
- Javascript:外部函数获胜'不起作用
- Javascript if子句获胜'不起作用
- 我的Jquery代码仍然获胜'不起作用,但firebug什么也没表现出来
- jQuery AJAX POST to Rails 3.2.1 Params获胜'不起作用
- html页面中的Java脚本获胜'不起作用,但它在drupal页面上确实起作用