Javascript Live bound submit未指向Chrome中的元素
运行以下代码,我希望看到相关表单,以便从中提取信息。相反,Javascript Live bound submit未指向Chrome中的元素,javascript,jquery,submit,jquery-events,Javascript,Jquery,Submit,Jquery Events,运行以下代码,我希望看到相关表单,以便从中提取信息。相反,此指向文档 我假设它与使用活动绑定有关,有解决方法吗 $('.form_one').add('.form_two').live('submit',function(e){ e.preventDefault(); console.log($(this)); }) 这是因为live() 作为一种解决方法,您应该使用$(e.target)获取引发事件的元素 另外,live()已被弃用,如果您使用的是jQuer
此
指向文档
我假设它与使用活动绑定有关,有解决方法吗
$('.form_one').add('.form_two').live('submit',function(e){
e.preventDefault();
console.log($(this));
})
这是因为live()
作为一种解决方法,您应该使用$(e.target)
获取引发事件的元素
另外,live()
已被弃用,如果您使用的是jQuery 1.7+,则应该使用delegate()
或on()
将演示如何在
处理程序上使用
<div id="container"></div>
var cont = $("#container");
// Note that I'm attaching it to container and not the forms themselves.
// Then, as an additional parameter, I provide the selector "form" so that
// `on` is only fired for "form" elements that "submit" and are children of "#container"
$("#container").on("submit", "form", function(e){
e.preventDefault();
console.log($(this));
});
$("<form>").addClass("form_one").append("<button type='submit'>Submit 1</button>").appendTo(cont);
$("<form>").addClass("form_two").append("<button type='submit'>Submit 2</button>").appendTo(cont);
var cont=$(“#容器”);
//请注意,我将它附加到容器,而不是表单本身。
//然后,作为一个附加参数,我提供了选择器“form”,以便
//`on`仅为“submit”的“form”元素激发,并且是“#container”的子元素
$(“#容器”)。关于(“提交”、“表格”、函数(e){
e、 预防默认值();
log($(this));
});
$(“”).addClass(“form_one”).append(“Submit 1”).appendTo(cont);
$(“”)addClass(“表格二”)。append(“提交二”)。appendTo(续);
1)live
不推荐使用,请改用
上的。2) 你为什么要添加表格?您可以将其编写为$('.form\u one,.form\u two')。在…
上,如果未动态添加表单,则可以将其编写为$('.form\u one,.form\u two')。提交(函数()…
on
在我的经验中并不完美。我可能没有正确地使用它,但在本例中,如果您将live
替换为on
,它在chrome中不起作用。两个表单都是动态添加的