Javascript 将处理程序从jquery元素附加到其他元素
我有一个jquery处理程序附加到页面中的表单。然后动态加载一些组件,这些组件可能包括一个表单,该表单应该得到相同的jquery处理程序 我知道这一点,我应该使用.live()或.on()将处理程序附加到这个动态加载的组件,我已经在其他地方成功地应用了这一技术 但是,在本例中,我发现很难使用.on(),因为我不想再次为新表单编写代码。可以告诉一个元素应用与另一个相同的处理程序吗 这是我的代码结构Javascript 将处理程序从jquery元素附加到其他元素,javascript,jquery,html,dynamically-generated,Javascript,Jquery,Html,Dynamically Generated,我有一个jquery处理程序附加到页面中的表单。然后动态加载一些组件,这些组件可能包括一个表单,该表单应该得到相同的jquery处理程序 我知道这一点,我应该使用.live()或.on()将处理程序附加到这个动态加载的组件,我已经在其他地方成功地应用了这一技术 但是,在本例中,我发现很难使用.on(),因为我不想再次为新表单编写代码。可以告诉一个元素应用与另一个相同的处理程序吗 这是我的代码结构 $(".myForm").submit( function() { aler
$(".myForm").submit(
function() { alert("do stuff");}
);
$(".loadPage").click(
function() {
$.post( "my_url.php",
"my_var = " + my_var,
function( data) {
//data may contain a form, that is supposed to behave just as myForm
$("#container").html( data );
//now I shoudl be able to apply the handler, but I´m not sure how
$("#container .myForm").submit( sameHandler );
}
}
);
所以,我不知道,也不知道如何定义“sameHandler”。
顺便说一句,动态加载的表单确实有“myForm”类(如果有帮助的话),但我不知道是否有任何方法可以“刷新”动态加载元素上的jQuery指令。您可以将提交事件添加到文档中,并将其与选择器耦合
$(document).on("submit", ".myForm", function(){alert("do stuff");});
您还可以声明一个可以在多个位置使用的函数变量
var sameHandler = function() {
alert("do stuff");
};
$(".myForm").submit(sameHandler);
$("#container .myForm").submit(sameHandler);
您可以将函数分配给变量,并在以后使用变量名调用该函数。只需确保它位于可以从$.post()访问的范围内。此外,使用.on()几乎总是与.submit()或.click()等一样快
$(document).on('submit','.myForm',function(e){…})
如果你想让别人帮你回答问题,请格式化你该死的代码。。。它看起来既恐怖又丑陋。遵循更大的javascript社区的常规做法,以便更具可读性。
var submitHandler = function() {
alert("do stuff");
};
$(".myForm").on('submit', submitHandler);
$(".loadPage").click(function () {
$.post("my_url.php", "my_var = " + my_var, function (data) {
$("#container").html(data);
$("#container .myForm").on('submit', submitHandler);
});
});