传递参数,jQuery

时间:2010-09-18 11:25:24

标签: javascript jquery javascript-events

我的文档准备好了以下代码:

    $('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参数?

3 个答案:

答案 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');