我的文档准备好了以下代码:
$('a').click(function(e) {
e.preventDefault();
var $this = $(this);
var horizontalPadding = 30;
var verticalPadding = 30;
$('<iframe id="externalSite" class="externalSite" src="' + this.href + '" />').dialog({
title: ($this.attr('title')) ? $this.attr('title') : 'External Site',
autoOpen: true,
width: 800,
height: 500,
modal: true,
resizable: true,
autoResize: true,
overlay: {
opacity: 0.5,
background: "black"
}
}).width(800 - horizontalPadding).height(500 - verticalPadding);
});
我想这样做:
$('a').click(aFunction())
但是如何传递e参数?
答案 0 :(得分:1)
function aFunction(e) {
e.preventDefault();
var $this = $(this);
var horizontalPadding = 30;
var verticalPadding = 30;
$('<iframe id="externalSite" class="externalSite" src="' + this.href + '" />').dialog({
title: ($this.attr('title')) ? $this.attr('title') : 'External Site',
autoOpen: true,
width: 800,
height: 500,
modal: true,
resizable: true,
autoResize: true,
overlay: {
opacity: 0.5,
background: "black"
}
}).width(800 - horizontalPadding).height(500 - verticalPadding);
}
$('a').click(aFunction);
jQuery会将'e'传递给你提供的函数 - 但你必须在没有括号的情况下传递它,所以你要传递一个函数对象,而不是函数调用的结果。
答案 1 :(得分:1)
这样做:
function aFunction(e) { ... }
$('a').click(aFunction);
自动传递event参数。
答案 2 :(得分:1)
$('a').click();
或
$('a').trigger('click');