客户端正在向服务器发出请求。 我需要参与该请求,并使表单按钮与 Ajax 配合使用。
这段代码非常适合链接:
var pagination_render = function() {
var pagination = $('.pagination a');
pagination.each(function() {
$(this).click(function(event) {
load_server(this.href, '.houseindex');
return false;
});
});
};
pagination_render();
我尝试了很多方法来使 Ajax 按钮正常工作,这是其中的尝试之一:
var contact_user = function () {
$('.expanded').find('#submit').each(function() {
$(this).unbind('click');
});
$('.expanded').each(function() {
$(this).find('#submit').click(function(event) {
form_submit($(this).parent(), '.contactuser .msg');
return false;
});
});
}
只要 Ajax 调用成功,它就会遍历所有展开的项目,然后绑定(bind)一个点击事件。
现在,有时此代码可以工作,有时则不能。当它不起作用时,它会禁用我设置的其他事件(切换链接)。 似乎我需要等待几毫秒才能将组件加载到 DOM 中。我需要吗?
最佳答案
所以当你打电话 contact_user
时我明白了你:
- 首先从提交按钮取消绑定(bind)任何先前绑定(bind)的点击事件。我发现一个可能的问题是您正在寻找
#submit
的 id 。一个页面中只能有一个 id。因此你只需要使用$('#submit').each(...)
或者,如果页面中有多个提交按钮,则如果.expanded
中有多个提交按钮,则使用类。项目或仅使用$('.expanded :submit')
- 添加点击提交按钮时的自定义事件。同样的事情,你可以通过
$('.expanded :submit')
来简化它或者如果您确实只有一个 id 为submit
的按钮(很困惑)。与$('#submit')
一起去.
结论:
var contact_user = function(){
$('.expanded :submit').unbind('click');
$('.expanded :submit').click(function(){
form_submit($(this).parent(), '.contactuser .msg');
return false;
});
};
:submit
选择器将选择所有 <input type="submit" />
.
关于javascript - 在 jQuery 中通过 Ajax 请求创建 Ajax 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282724/