Javascript 使用jQuery为DOM事件订阅多个处理程序
我正试图通过css类订阅事件。我有两个处理程序,定义如下:Javascript 使用jQuery为DOM事件订阅多个处理程序,javascript,javascript-events,jquery,Javascript,Javascript Events,Jquery,我正试图通过css类订阅事件。我有两个处理程序,定义如下: $(document).ready(function() { $('.refresh-cart').click( function(e) { alert('refreshing'); }); $('form.ajax').submit( function(e) { e.preventDefault();
$(document).ready(function() {
$('.refresh-cart').click(
function(e) {
alert('refreshing');
});
$('form.ajax').submit(
function(e) {
e.preventDefault();
$.post(
this.action,
$(this).serialize(),
function(data, textStatus, jqXHR) { alert('post'); },
'text');
}
);
});
当这些处理程序重叠时,我无法获得预期的功能
通过发出“post”警报并提交ajax请求,此代码可以正常工作
<form action="page.html" method="post" class="ajax">
<input type="text" name="Sample" value="SampleValue" />
<input type="submit" />
</form>
通过发出“刷新”警报,此代码正常工作
<div class="refresh-cart">Refresh Widget</div>
刷新小部件
但是,当这些重叠时(例如在下面的示例中),只有“刷新购物车”订户触发
<form action="page.html" method="post" class="ajax">
<input type="text" name="Sample" value="SampleValue" />
<input type="submit" class="refresh-cart" />
</form>
我做错了什么?如何使两个处理程序都启动?您是否尝试过从单击处理程序提交表单
$(document).ready(function() {
$('form.ajax').submit(
function(e) {
e.preventDefault();
$.post(
this.action,
$(this).serialize(),
function(data, textStatus, jqXHR) { alert('post'); },
'text'
);
});
$('.refresh-cart').click(
function(e) {
alert('refreshing');
$('form.ajax').submit();
return false;
});
});
它对我很管用 但是,在显示第二个警报框之前,您必须关闭第一个警报框
你的代码在上运行,对我来说也很好。我认为你也应该考虑Ajax提交的jQuery表单插件,并且从提交到按钮改变输入类型。我没有发现你提到的两个代码有任何变化。above@Abdul卡德,编辑好了。第一个代码示例在submit按钮上没有类。我没有尝试过这个,因为它没有实现目标。页面上有多个ajax表单。其中只有一个应该刷新购物车。还有多个元素可以刷新购物车,其中只有一个元素是表单