使用jQuery为DOM Events订阅多个处理程序
Subscribing multiple handlers to DOM Events with jQuery
我正在尝试通过CSS类订阅事件。我有两个处理器,定义如下:
$(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>
这段代码可以正常工作,通过警告'refreshing'
<div class="refresh-cart">Refresh Widget</div>
但是,当它们重叠时(例如在下面的示例中),只有'refresh-cart'订阅者触发。
<form action="page.html" method="post" class="ajax">
<input type="text" name="Sample" value="SampleValue" />
<input type="submit" class="refresh-cart" />
</form>
我做错了什么,我如何使两个处理程序着火?
这对我来说很好。
在显示第二个警报框之前,你必须关闭第一个警报框。
您的代码在http://jsfiddle.net/gaby/W3zC4/
您是否尝试过从点击处理程序提交表单?
$(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;
});
});
这对我来说也很好。我认为你也应该考虑jquery表单插件在这里ajax提交和改变输入类型从提交到按钮
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 提示使用服务器端事件处理程序激活JavaScript
- 将事件处理程序绑定到任何可能的事件
- 正在将事件处理程序添加到不存在的类
- 在AJAX回调和呈现PIXIJS之间处理程序流时遇到了问题
- Adobe Edge:动画完成时添加onComplete处理程序
- 是否可以从输入处理程序中确定输入的类型
- 在循环中附加事件处理程序时出现浏览器性能问题
- 在同一个javascript事件处理程序中调用不同的函数
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 检查事件处理程序参数
- 实现延迟的jquery更改事件处理程序
- 平均值.on(事件[,选择器][,数据],处理程序)
- getSript在同一对象上多次添加处理程序
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 如何让React JS点击处理程序在执行时更新DOM
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- Backbone listenTo不将jquery函数作为处理程序进行激发
- 带有参数的Javascript事件处理程序
- Jquery事件处理程序仅适用于匿名函数