使用jQuery订阅DOM事件的多个处理程序
问题描述:
我试图通过css类来订阅事件。我有两个处理器,定义如下:使用jQuery订阅DOM事件的多个处理程序
$(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');
}
);
});
当这些处理重叠的,我没有得到预期的功能。
此代码正常工作,通过提醒'发布'并提交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;
});
});
+0
我没有试过这个,因为它没有完成目标。页面上有多个Ajax表单。其中只有一个人应该刷新购物车。还有多个刷新购物车的元素,其中只有一个是表单。 – smartcaveman 2011-04-12 10:28:36
+0
这些句子应该在问题:) – Calum 2011-04-12 10:31:54
我没有发现你在上面提到的两个代码的任何变化 – 2011-04-12 10:11:35
@Abdul Kader,编辑。第一个代码示例没有提交按钮上的类。 – smartcaveman 2011-04-12 10:19:40