我使用unbind方法关闭了图片的click事件。但是我不知道如何再次恢复点击事件。这是代码,
<img src="testimg.jpg" id="sub_form">
已使用代码禁用上图的点击事件
$('#sub_form').unbind('click');如何恢复点击事件?我尝试使用绑定事件
$('#sub_form').bind('click');但这行不通。
为什么我要去点击图像事件是ajax表单提交。代码是,
$("#sub_form").click(function() {
var input_data = $('#testform').serialize();
$.ajax({
//my code
});
});如何在解绑镜像后实现此目的。
发布于 2012-03-29 18:00:36
如果您保存了处理程序,则可以再次调用它:
var handler = function() {
alert('click');
};
$('#sub_form').click(handler);
// disabling:
$('#sub_form').unbind('click', handler);
// reenabling:
$('#sub_form').click(handler);如果您不知道绑定了哪些处理程序,可以在解绑之前找到并保存它们:
// save the click handlers
var events = $('#sub_form').data('events'),
handlers = 'click' in events ? Array.prototype.slice.call(events.click) : [],
handler = function() {
$.each(handlers, function() {
this.handler();
});
};
// disable
$('#sub_form').unbind('click');
// reenable
$('#sub_form').bind('click', handler);http://jsfiddle.net/sPPnE/
发布于 2012-03-29 18:01:18
您可以在调用.unbind()时指定function reference
例如:
function myHandler( event ) {
}
// bind the click handler
$('#sub_form').bind('click', myHandler);
// remove only this exact click handler
$('#sub_form').unbind('click', myHandler);
// bind it again
$('#sub_form').bind('click', myHandler);Sidenote:对于jQuery 1.7.x,您应该使用.on()和.off()等效方法。
参考:.on(),.off(),.bind(),.unbind()
发布于 2012-03-29 17:58:46
您需要为事件处理程序提供一个在事件发生时运行的函数,请尝试执行以下操作:
$('#sub_form').bind('click', function() {
alert("You clicked #sub_form");
});如果你要定期绑定/解绑,最好将逻辑放到它自己的函数中,这样它就可以很容易地被重新绑定:
$("#element").click(function() {
$("#sub_form").unbind();
// do something
$("#sub_form").bind('click', myFunc);
});
function myFunc() {
alert("You clicked #sub_form");
}https://stackoverflow.com/questions/9923062
复制相似问题