gpt4 book ai didi

javascript - 自匿名函数在加载时运行绑定(bind)事件

转载 作者:行者123 更新时间:2023-11-28 06:41:09 24 4
gpt4 key购买 nike

我正在尝试遵循模块化 js 设计模式(揭示),但我有一个问题。当我像这样绑定(bind)事件监听器时:

$addClient.submit(ajaxCall);

事件 ajaxCall 不会在加载时运行。但是,当我添加括号时,如下所示:

$addClient.submit(ajaxCall());

...它在加载时运行并且不绑定(bind)到事件。是什么赋予了?我想向 ajaxCall() 函数添加一个参数,但我似乎无法让它正常工作。为了让您了解上下文,以下是整个代码:

var Ajax = (function(){
var $addClient = $('#add_client');

$addClient.submit(ajaxCall);


function ajaxCall(clearFields) {
console.log('function called');
var data = $(this).serialize();
var url = this.action;
$.ajax({
type: 'POST',
url: url,
dataType: 'json',
data: data,
success: function(data) {
if(data.st === 0) {
$messageContainer.html('<p class="alert alert-danger">' + data.msg + '</p>');
setTimeout(function(){
$messageContainer.html('');
}, 7000);
} else {
$messageContainer.html('<p class="alert alert-success">' + data.msg + '</p>');
if(clearFields === true) {
$('input[type="text"]').val('');
$('input[type="email"]').val('');
$('textarea').val('');
}
setTimeout(function(){
$messageContainer.html('');
}, 7000);
}
}
});
return false;
}
})();

最佳答案

您应该绑定(bind)到主体,当元素不可用时,它将消除绑定(bind)问题,还可以通过将其包装在匿名函数中来传递参数:

$('body').on('submit', '#add_client', function () {
ajaxCall(yourArguments)
});

关于javascript - 自匿名函数在加载时运行绑定(bind)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33807503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com