传递参数jQuery

mzsu5hc0  于 2022-12-18  发布在  jQuery
关注(0)|答案(3)|浏览(70)

我在文档中准备了以下代码:

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

np8igboo

np8igboo1#

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'传递给您提供的函数--但是您必须不带方括号地传递它,所以您传递的是一个函数对象,而不是函数调用的结果。

6mw9ycah

6mw9ycah2#

请执行以下操作:

function aFunction(e) { ... }
$('a').click(aFunction);

将自动传递事件参数。

5lwkijsr

5lwkijsr3#

$('a').click();

$('a').trigger('click');

相关问题