JQuery on(' click')直接调用函数,而不是在事件监听器中定义它

时间:2017-06-13 09:12:35

标签: javascript jquery function

$('#homeNavBar').on('click', onSiteLoad());

function onSiteLoad() {
    $('#dataHolder').html('');
    userLoginMenu.html('');
    var h1 = $('<h1>').text('Welcome');
    var span = $('<span>').text('Welcome to our book library');
    dataHolder.append(h1).append(span);
}

我想直接在change函数中调用onSiteLoad()函数。

它让我这么做的唯一方法就是这样:

$('#homeNavBar').on('click', function () {
    $('#dataHolder').html('');
    userLoginMenu.html('');
    var h1 = $('<h1>').text('Welcome');
    var span = $('<span>').text('Welcome to our book library');
    dataHolder.append(h1).append(span);
});

2 个答案:

答案 0 :(得分:4)

您需要传递函数引用,截至目前您正在调用该函数,因为它将返回值传递给事件处理程序

$('#homeNavBar').on('click', onSiteLoad);
                                    //^^^^ Parenthesis removed

答案 1 :(得分:0)

您也可以在onClick中调用外部函数。

$('#homeNavBar').on('click', function () {
    onSiteLoad();
});