花式框点击与元素绑定在 Yii CGridView 与 ajax 分页
Fancybox on click with element binding in Yii CGridView with ajax Pagination
我正在使用带有ajax分页的Yii CGridView,其中一列是图像或内联ajax内容的链接,我想使用FancyBox到列。
当我使用分页时,我失去了对新元素的绑定。
如果我尝试在元素单击上制作它,如果元素已经有如下所示的花哨框,我总是会收到错误
$('a.fancy-img').live('click', function () {
$(this).fancybox({});
return false;
});
但是如果我在同一链接上单击两次,我总是会收到javascript错误。
您尝试两次初始化元素的 fancybox 的问题,因此您的 javascript 中断并且不起作用。
您可以将类或某些属性添加到已经具有 Fancybox init 的元素中,这样您就不会为相同的元素和您的 javascript 喙再次初始化它,如下所示:
$('a.fancy-img').live('click', function () {
var El = $(this);
$(this).fancybox({});
if (!El.hasClass('fancy-box-init')) {
El.addClass('fancy-box-init');
El.trigger('click');
}
return false;
});
尝试
Fancybox使用$(element).data()
来存储其元素相关的配置。
因此,请检查if(!$(this).data().fancybox)
-->如果没有数据,则表示没有注册花式盒子,则注册花式框
$('a.fancy-img').live('click', function () {
if(!$(this).data().fancybox){ //or if(!$(this).data("fancybox"))
$(this).fancybox({});
}
return false;
});
.live() 被取消使用 .on()
语法
$( elements ).on( events, selector, data, handler );
相关文章:
- 如何解决Yii中的页面刷新问题
- 如何在yii中使用append
- 如何制作Yii框架的linkHtmlOptions's的CGridView显示为图像图标,单击时会触发javas
- Yii ajaxbutton : 如何在成功回调函数中获取 $(this)
- 如何在yii中在同一行中给出onblur和onkeypress,这是可能的吗
- 未捕获的语法错误:意外的标记<在yii
- 显示基于下拉选择yii 2设置的字段
- 如何在 YII 框架中的 CJui自动完成中建议多个列
- Yii CGridView - 自定义列
- Yii cgridview 刷新导致多个 ajax 调用
- Yii CGridView update
- 来自不同控制器的yii cgridview中断了寻呼机
- 将Yii CGridView的可选行限制为复选框列
- Yii cGridView更新有错误"TypeError: $.fn.yiiGridView是未定义的
- Yii CGridView使用键盘's箭头上下移动选定行
- Yii cgridview更新取决于下拉列表
- Yii CGridView按钮-调用参数化javascript函数
- CGridView分页-Yii框架中的IFrame问题
- Yii CGridView关于分页的javascript事件
- 花式框点击与元素绑定在 Yii CGridView 与 ajax 分页