的fancybox beforeLoad回调:JavaScript中,jQuery和引用$呢?(Fa

2019-06-27 01:37发布

我不知道如何完成我在寻找什么做的,其中,在起步,似乎简单。 我想加一个'visited'调用链接的内容到一个IFRAME的fancybox上课前被点击的链接。

的fancybox工作得很好,只要我离开关beforeLoad电话。 添加时,页面重新加载简单的窗口,绕过的fancybox。

我不知道我是否beforeLoad函数(这里称为add_visited )允许使用jQuery(如addClass ),或者我是否需要坚持直JavaScript功能( element.setAttribute("className", "visited") 粘贴在这里的代码是jQuery的,有传递给一个参考thistheClicked

所以,你可以看到,我也不能确定如何引用$(this)的功能。 基本上我想延续this从实际$.fancybox()调用。

为清楚起见, .clinical_trial_link是应用于锚类。 在实际的代码,它的a.clinical_trial_link

为了进一步澄清,我读过这里几句交谈讨论所访问标记链接的这种方法的相对优势。 我得到的缺点简单地使用一类,但在一个站点链接沉重,因为这一个,看到什么被点击已经是势在必行。

最后,有问题的网页位置为: http://pull4parkinsonsfoundation.org/clinical_trials/

JS的,当然会从什么粘贴在这里,因为我不断地捶打周围像与键盘鲭改变。 ;-)

任何帮助,将不胜感激,并提前进行了出色的工作,你都在做计算器感谢。 这是我第一次真正有在年的问题!

这里是我的代码:

function add_visited(theclicked) {
    $(this).addClass('visited');
}

$(document).ready(function() {
    $('.clinical_trial_link').fancybox({
        'beforeLoad': add_visited($this),
        'maxWidth': 1222,
        'maxHeight': 1222,
        'fitToView': true,
        'width': '80%',
        'height': '90%',
        'topRatio': 0.2,
        'autoSize': false,
        'closeClick': false,
        'openEffect': 'elastic',
        'closeEffect': 'elastic'
    });
});

Answer 1:

如果你想要做的是一个补充class绑定到的fancybox选择,使用指的是元素$(this.element)内任何的fancybox回调喜欢的

$('.clinical_trial_link').fancybox({
  'beforeLoad': function(){
    $(this.element).addClass("visited");
  },
  'maxWidth': 1222,
  // other API options etc
});


Answer 2:

当你这样做:

'beforeLoad': add_visited($(this)),

$(this)成为该函数的参数。 因此,使用参数- this在功能没有上下文。

function add_visited(theclicked) {
    $(theclicked).addClass('visited');
}

或者,你可以这样做,而不是:

$('.clinical_trial_link').fancybox({
    'beforeLoad': function(){
        $(this).addClass('visited');
    },

欲了解更多关于this ,请参阅这篇文章 。



Answer 3:

使用这是您的fancybox参数:

'beforeLoad': function() { 
     alert('test'); 
},


文章来源: Fancybox beforeLoad Callback: Javascript, jQuery and referencing $this?