gpt4 book ai didi

javascript - 如何将事件对象传递给对象内的函数

转载 作者:行者123 更新时间:2023-12-02 16:26:18 25 4
gpt4 key购买 nike

使用 .on 和 click 处理程序将事件对象传递给对象内的函数。它似乎没有按照我想象的方式工作,因此初始 event.preventDefault() 不起作用。由于 event.preventDefault() 不起作用,提交按钮会自动打开 mail.php 页面,这显然不是我想要的。如果有人可以帮助解决这个问题或引导我走向正确的方向,我将非常感激。

我的脚本:

(function(){
"strict";
var portfolio = {
email: function(event){
event.preventDefault();
alert("hello people");
var form = $('#contact');
var formMessages = $('#form-messages');
var formData = $(form).serialize();
$.ajax({
type: 'POST',
url: 'mailer.php',
data: formData
})
.done(function(response) {
// Make sure that the formMessages div has the 'success' class.
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
console.log(response);

// Set the message text.
$(formMessages).html('<p class="success">Message has been sent succesfully! Thank you '+ $('#f_name').val() +', a response will be returned in less than one business day.</p>');
// Clear the form.
$('#f_name').val('');
$('#f_email').val('');
$('#f_message').val('');
$('#f_website').val('');
$('#f_budget').val('');
$('#f_hear').val('');
$('#f_startdate').val('');
$('#f_phone').val('');
form.fadeOut('slow').remove();
})
.fail(function(data) {
// Make sure that the formMessages div has the 'error' class.
$(formMessages).removeClass('success');
$(formMessages).addClass('error');

// Set the message text.
if (data.responseText !== '') {
$(formMessages).html('<p>'+data.responseText+'</p>');
} else {
$(formMessages).html('<p>Oops! An error occured and your message could not be sent.</p>');
}
});
},
};

$('body').on('click', '.contact', portfolio.email(event));

最佳答案

当你说:

$('body').on('click', '.contact', portfolio.email(event));

那么该事件将被发送到 portfolio.email(event) 返回的任何内容,这当然是无效的。

只需传递函数名称:

$('body').on('click', '.contact', portfolio.email);

关于javascript - 如何将事件对象传递给对象内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28650126/

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