【发布时间】:2016-12-23 05:11:52
【问题描述】:
我有两个文档就绪事件。
首先,在页面上(工作帖子请求插入 html 表单),由我的 WP 短代码插入:
<script type="text/javascript" >
jQuery(document).ready(function($) {
jQuery.post(
ajaxUrl,
{
action: 'action',
nonce: 'nonce'
},
function(response) {
$('#place').removeClass('preloader');
$('#place').html(response);
}
);
});
</script>
第二个(在我将第一个代码添加到页面之前一直有效),在页脚中加载的 js 文件中:
jQuery(document).ready(function($) {
$('#myform').submit(function(e) {
e.preventDefault();
/* some ajax call with form data*/
});
});
第二个就绪事件被触发,但$('#myform').submit 不起作用。
你能帮帮我吗?
【问题讨论】:
-
如果你调试第二个,我想你会看到
$('#myform')没有返回任何元素。 -
可能是。 id
myform的表单在第一个事件中通过邮寄方式插入。那么,当加载第二个 js 时,myform不在文档中...如何解决这个问题? -
将
$('#myform').submit()放在$('#place').html(response);之后会有意义,因为存在依赖关系。 -
当然,这是显而易见的解决方案,但它会破坏一般的方法。
-
有几种解决方案,1)您可以将
$('#myform').submit()放在html表单中,这样它就会在$('#place').html(response);时自动执行。叫做。 2)通过解析响应使方法更智能,并检查是否有带有提交按钮的表单元素 3)在两段代码之间使用基于事件的通信。
标签: javascript php jquery wordpress