我正在使用Drupal网站,其中Colorbox用于图像,但它是手动添加的,而不是通过模块添加的。
当Colorbox用于使用Views生成的照片库时,会出现问题,并且使用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最佳实践,但这似乎应该有效,我想知道为什么它不会。我在这里偏离轨道,方法是错误的吗?
答案 0 :(得分:0)
您必须使用Drupal Behaviors或JQuery实时函数,才能将事件附加到异步显示的元素。