Jquery 动态加载的链接不';t单击时触发颜色框,但第二次单击时
我有一个我似乎无法解决的问题: 我使用jQuery将内容动态加载到TinyScrollbar。内容中包含的链接应该会激发ColorBox。 对于要工作的链接,我使用jQUery的Jquery 动态加载的链接不';t单击时触发颜色框,但第二次单击时,jquery,colorbox,Jquery,Colorbox,我有一个我似乎无法解决的问题: 我使用jQuery将内容动态加载到TinyScrollbar。内容中包含的链接应该会激发ColorBox。 对于要工作的链接,我使用jQUery的delegate。但是,在加载内容后,只有单击链接两次,我的颜色框才会打开 (我想,这是为了让jQuery意识到有一个匹配的元素,第二次执行委托函数。) 这是我的密码: $(document).ready(function() { var main = $('#main'); main.tinyscrol
delegate
。但是,在加载内容后,只有单击链接两次,我的颜色框才会打开
(我想,这是为了让jQuery意识到有一个匹配的元素,第二次执行委托函数。)
这是我的密码:
$(document).ready(function() {
var main = $('#main');
main.tinyscrollbar();
$(function(){
$(window).bind( 'hashchange', function(e){
var hash = location.hash;
if (hash != '' && hash != ' ' && hash != 'undefined') {
var urlToLoad = hash;
$('.overview').load(urlToLoad, function(response, status, xhr) {
urlToLoad = "";
main.tinyscrollbar_update();
});
}
});
$(window).trigger( 'hashchange' );
});
$(document).delegate("a.video", "click", function(e){$(this).colorbox({iframe:true, innerWidth:700, innerHeight:394, fastIframe:false, transition:"none"});return false; });
$(document).delegate("a.img", "click", function(e){$(this).colorbox({transition:"none"});return false;});
});
您需要从docReady函数中删除docReady函数。在jQuery中,这是:
$(function() {
//your docReady code
});
这是一种简写形式:
$(document).ready(function() {
//your docReady code
});
当您嵌入了docReady代码时,嵌入的docReady代码将在当前docReady代码完成后排队并执行。注意:
$(document).ready(function() {
$(function() {
alert("FIRST in code, but executed SECOND");
});
alert("SECOND in code, but executed FIRST");
});
老实说,我不确定这是否会解决您的问题,但在任何情况下都可能导致奇怪的问题。这是有意义的,因为您仅在第一次单击时绑定colorbox单击事件和设置数据。直到再次单击才触发单击事件并打开颜色框。由于您已经在使用自己的单击事件,我的建议是不要将colorbox绑定到任何东西,只需在需要时直接调用它即可。例如:
$(document).delegate("a.img", "click", function(e){
$.colorbox({transition:"none", href:this.href});
return false;
});
这样可以将图像分组到“库”中。不确定重新绑定每次单击的含义
$(document).delegate("a.img", "click", function(e){
$("a.img").colorbox({rel: 'group1', open: true});
return false;
});
谢谢你告诉我,我不知道!:)不幸的是,这似乎破坏了图像分组。我无法使用这种方法左/右翻页。