嗨,这很简单,但我似乎无法弄明白!
if( is_logged_out( html ) ) {
var throughClick = $(this);
$.fancybox( html, {
'autoDimensions' : false,
'width' : 'auto',
'height' : 'auto',
'transitionIn' : 'none',
'transitionOut' : 'none',
'hideOnOverlayClick' : false,
'showCloseButton' : false,
'onClosed' :
function( throughClick ) {
alert(throughClick.attr('name'));
throughClick.trigger('click');
}
});
}else{
我想要做的就是传递被点击的按钮或链接的对象,因此一旦用户重新登录,它将再次处理。
非常感谢任何帮助。
答案 0 :(得分:1)
onClosed:function(){ 执行console.log(参数) }
会引导你到orig:P应该点击原始元素
参数[2] .orig.hide()会隐藏点击的链接
答案 1 :(得分:0)
您必须确保修复throughClick
变量中的“任何按钮或链接”对象。这不一定由this
变量完成。 this
由调用函数填充,您并不总是控制它,尤其是在使用
或许,您最好告诉对象在单击时显式调用函数。通过枚举它们可以很容易地实现自动化:
var onclickables = $.map
( ["#clickme1","#clickme2"]
, function( i, e ) { return $(i); }
);
var html="";// whatever you need it to be
$.each(onclickables)( function( index, item ) {
item.click( function(e){
your_new_function( html, item ); // <=== here you know the object
});
});
function your_new_function( html, throughClick ) {
if( is_logged_out( html ) ) {
$.fancybox( html, {
'autoDimensions' : false,
'width' : 'auto',
'height' : 'auto',
'transitionIn' : 'none',
'transitionOut' : 'none',
'hideOnOverlayClick' : false,
'showCloseButton' : false,
'onClosed' :
function( throughClick ) {
alert(throughClick.attr('name'));
throughClick.trigger('click');
}
});
我也在jsfiddle中展示了这个想法。