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

标签 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);
});

最佳答案

您需要传递函数引用,现在您正在调用该函数,并将其返回值传递给事件处理程序

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

关于javascript - JQuery on ('click' )直接调用函数,而不是在事件监听器中定义它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44517113/

相关文章:

javascript - 捆绑 ES6 文件而不进行转译

javascript - 将所有脚本包含在单独的文件中

javascript - 当鼠标单击第一个 <div> 时,它必须向后移动,并且必须显示第二个 <div>

javascript - Google 循环脚本未运行

Jquery背景动画

function - 如何在 Bourne shell 中导出函数?

表达式中的 Python 函数 - 推迟求值

javascript - 在不同的函数上访问 JQuery/AJAX 的返回值

javascript - CSS + jquery 响应式背景颜色变化

javascript - jQuery 选择器没有按预期工作