我希望我把问题说清楚了。
假设您有一些复选框(或任何其他类型的元素),您在页面加载时为其注册事件处理程序。然后使用 AJAX 添加更多复选框(因此无需重新加载页面)。但是您还希望这些新添加的复选框(在页面加载后)具有相同的注册事件处理程序吗?
我尝试的是这样,但我觉得必须有更好的方法:
$(document).ready(function () {
// Register custom envets handler
registerCustomEventHandlers();
$('a').on('click', addExtraFields);
});
function registerCustomEventHandlers() {
$('input.class_name').on("change", sayHelloWorld);
}
function sayHelloWorld() {
alert('Hello world');
}
function addExtraFields() {
// insert some checkboxes...
// register the events handler again for the newly added fields
registerCustomEventHandlers();
}
所以基本上在添加复选框的函数中,我再次注册了所有事件处理程序。我正在看类似的东西,$(document).change(function() {});
但显然并非所有浏览器都支持它......
有什么建议么?