0

我正在尝试在 Fancybox 中使用自定义复选框。它们出现但不起作用(不可检查)。

$(document).ready(function() {

    $("#fnc").live("click", function(){
        $.fancybox($("#hidediv").html(),{
          'speedIn'         : 600, 
          'speedOut'            : 200, 
          'overlayShow'     : false,
          'autoDimensions'  : false,
          'width'           : 620,
          'height'          : 'auto',
          'overlayShow'       : true,
          'overlayOpacity'    : 0.8,
          'overlayColor'      : '#ccc'

          });
$('.defaultP input').ezMark();
$('.customP input[type="checkbox"]').ezMark({checkboxCls: 'ez-checkbox-green', checkedCls: 'ez-checked-green'});
        }); 
});

有没有办法在 Fancybox 加载后再次触发 jQuery?

4

1 回答 1

0
My question is how to have custom checkboxes within Fancybox

该问题的答案是“是”,可以在 fancybox 中使用自定义复选框(操作方法?继续阅读;)

关于.live()“从fancybox打开多个fancybox”的使用,最好改为使用.on()(虽然它需要jQuery 1.7+)。我猜想使用.live()(自 jQuery 1.7 起已弃用),.click()旨在动态添加元素到 DOM 以在 fancybox 中打开。

“你不能从 fancybox 打开 Fancybox,除非你使用.live()不一定是真的,但是为了在 fancybox (v1.3.4) 中打开当前和/或动态添加的元素,在这个演示中我们将使用.on()一个常规的 fancybox$(".selector").fancybox();脚本(没有。click()

这个,应该做的伎俩

$(document).ready(function() {
 $("body").on("focusin", function(){
  $("a.fancybox").fancybox({
   'speedIn': 600, 
   'speedOut': 200, 
   'overlayShow': false,
   'autoDimensions': false,
   'width': 620,
   'height': 'auto',
   'overlayShow': true,
   'overlayOpacity': 0.8,
   'overlayColor': '#ccc',
   'onCleanup': function() {
    var myContent = this.href;
    $(myContent).unwrap();
   }
  }); // fancybox
 }); // on
 $('.defaultP input').ezMark();
 $('.customP input[type="checkbox"]').ezMark({checkboxCls: 'ez-checkbox-green', checkedCls: 'ez-checked-green'});
}); // ready

不相信我,看看它在这里工作。在那个 DEMO 中,您还可以从 fancybox 中打开另一个 fancybox。

有关focusin用作.on()事件的更多信息,请查看如何将 fancybox 绑定到动态添加的元素?其中还包括一个演示。

另请注意,我onCleanup在 jQuery.unwrap()方法中包含了该选项。由于我们使用的是“内联”内容,因此修复了这个错误

于 2012-06-16T19:21:55.413 回答