我在一个Drupal站点上工作,其中Colorbox用于图像,但它是手动添加的,而不是通过模块添加的。
当Colorbox用于通过视图生成的相册,而分页使用AJAX时,就会出现这个问题。第一个页面可以正常工作,但任何其他页面都不会触发Colorbox弹出窗口。
在我看来,Colorbox并不知道这些新元素,因为当页面加载时,这些元素并没有出现在DOM中。考虑到这一点,我尝试将Colorbox $.colorbox.init()方法绑定到分页事件,但始终返回错误:
“未定义:$.colorbox.init()”
下面是我添加到Drupal的Views模块中以测试分页事件(ajax_views.js第:132行)的成功状态的代码:
success: function(response) {
$.event.trigger('pagedContent'); 以下是我用来捕捉它的方法:
$(document).bind('pagedContent', function() {
$.colorbox.init(); });我还尝试再次运行常规初始化,但没有结果。
$(document).bind('pagedContent', function() {
$('myselector').colorbox(); });我确信我应该以不同的方式来遵循drupal的最佳实践,但是这看起来应该可以工作,我想知道为什么它不能工作。我是不是偏离正轨了,是不是方法错了?
发布于 2011-11-10 05:10:48
您必须使用Drupal Behaviors或JQuery活动函数,以便将事件附加到异步出现的元素。
https://stackoverflow.com/questions/5084074
复制相似问题