Jquery按钮。单击bug?
我有以下自主开发的jquery插件:Jquery按钮。单击bug?,jquery,events,Jquery,Events,我有以下自主开发的jquery插件: (function($) { $.fn.defaultButton = function(button) { var field = $(this); var target = $(button); if (field.attr('type').toLowerCase() != 'text') return; field.keydown(function (e
(function($) {
$.fn.defaultButton = function(button) {
var field = $(this);
var target = $(button);
if (field.attr('type').toLowerCase() != 'text')
return;
field.keydown(function (e) {
if ((e.which || e.keyCode) == 13) {
console.log('enter');
target.click();
return false;
}
});
}
})(jQuery);
我是这样使用它的:
$('#SignUpForm input').defaultButton('#SignUpButton');
$('#SignUpButton').click(function(e) {
console.log('click');
$.ajax({
type: 'post',
url: '<%=ResolveUrl("~/WebServices/ForumService.asmx/SignUp")%>',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify({
email: $('#SignUpEmail').val(),
password: $('#SignUpPassword').val()
}),
success: function(msg) {
$.modal.close();
}
});
});
$('signupforminput').defaultButton('SignUpButton');
$(“#签名按钮”)。单击(函数(e){
console.log('click');
$.ajax({
键入:“post”,
url:“”,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
数据:JSON.stringify({
电子邮件:$(“#注册电子邮件”).val(),
密码:$('#SignUpPassword').val()
}),
成功:功能(msg){
$.modal.close();
}
});
});
第一次,它起作用了。第二次,什么也没发生。我第一次在firebug日志中看到enter并单击,但第二次只看到enter消息。这就好像按钮的点击处理程序不知怎么被注销了。有什么想法吗?听起来很像ajax
success
处理程序中的某个东西在修改包含#SignUpButton
的DOM部分,从而杀死与之相关的所有事件处理程序。请尝试以下方法:
$('#SignUpButton').live('click', function(e) {
...
});
听起来很像ajax
success
处理程序中的某个东西在修改包含#SignUpButton
的DOM部分,从而终止与之相关的所有事件处理程序。请尝试以下方法:
$('#SignUpButton').live('click', function(e) {
...
});
您可能正在重置包含按钮的HTML,这将从头开始重新创建
元素(没有任何事件处理程序)
要解决此问题,可以使用函数添加事件处理程序,该函数将处理与选择器匹配的所有元素上的事件,无论它们是何时创建的。您可能正在重置包含按钮的HTML,这将从头开始重新创建
元素(没有任何事件处理程序)
要解决此问题,您可以使用函数添加事件处理程序,该函数将处理与选择器匹配的所有元素上的事件,无论它们是在何时创建的。没有回答这个问题,但您应该使此可链接,因为它是一个有用的插件:) 另外,请注意,
此
已经是jQuery对象,无需克隆它。制作这个wiki,可以随意改进:)不回答这个问题,但是你应该让它可以链接,因为它是一个有用的插件:) 另外,请注意,
此
已经是jQuery对象,无需克隆它。制作这个维基,请随意改进:)ahhh是的。我正在使用SimpleModel,它克隆元素并中断事件处理程序。你和斯莱克斯都做得很好,但我会给你答案,因为你先发了。啊,是的。我正在使用SimpleModel,它克隆元素并中断事件处理程序。你和斯莱克斯都做得很好,但我会给你答案,因为你先发了。谢谢你。我是jquery插件的新手,只是复制/修改了一个现有的插件。我想我错过了“还这个”的声明。谢谢你。我是jquery插件的新手,只是复制/修改了一个现有的插件。我想我错过了“还这个”的陈述。