Javascript jQuery无法将事件处理程序附加到<;表格>;创建人。加载
第一次提问。。。 我页面上的这个链接Javascript jQuery无法将事件处理程序附加到<;表格>;创建人。加载,javascript,jquery,ajax,Javascript,Jquery,Ajax,第一次提问。。。 我页面上的这个链接 <a onclick="$('#mainbody').load('pages/login.php', tester());">Login</a> …提交表单时不会发生任何事情。 但是,如果我将链接更改为 <a onclick="$('#mainbody').load('pages/login.php', function(){$( '#form' ).submit(function() { alert('Handler cal
<a onclick="$('#mainbody').load('pages/login.php', tester());">Login</a>
…提交表单时不会发生任何事情。
但是,如果我将链接更改为
<a onclick="$('#mainbody').load('pages/login.php', function(){$( '#form' ).submit(function() { alert('Handler called.'); return false;});});">Login</a>
登录
…这很好用。
从功能上讲,我看不出调用命名函数与在回调中定义函数之间有什么区别,但显然浏览器可以!
我做错了什么?是语法吗?时机?
或者——我仍然在使用jQuery——是因为即使我在调用一个在表单存在后引用表单的eventhandler,函数首先创建的事实会忽略它吗?您将调用
tester
函数的结果绑定为.load
的回调(这算不了什么)。改为这样做:
$("#mainbody").load('pages/login.php', tester);
也就是说,使用函数名作为回调。您正在将调用的结果绑定到
tester
函数,作为对.load
的回调(这不算什么)。改为这样做:
$("#mainbody").load('pages/login.php', tester);
也就是说,使用函数名作为回调
是不是因为即使我调用了一个eventhandler,它在表单存在后引用了表单
对。您应该研究jQuery委托方法
如果你说
$("body").delegate("form","submit",function(){
alert("handeled");
});
它将在从其他源加载后工作
是不是因为即使我调用了一个eventhandler,它在表单存在后引用了表单
对。您应该研究jQuery委托方法
如果你说
$("body").delegate("form","submit",function(){
alert("handeled");
});
从其他源加载表单元素后,它将工作。因为表单元素不在初始DOM中,您需要
- 在回调时重新附加它,在加载回调时调用函数
- 或者让它对这些变化做出反应 $(“#表单”).die('submit').live('submit',function(){ 警报('调用处理程序'); 返回false; });
请注意,我删除了函数,因为表单元素不在需要修改的初始DOM中
- 在回调时重新附加它,在加载回调时调用函数
- 或者让它对这些变化做出反应 $(“#表单”).die('submit').live('submit',function(){ 警报('调用处理程序'); 返回false; });
请注意,我删除了该功能我正在经历这样的一天!我有一个这样的日子!显然,没有足够的代表!显然,没有足够的代表!