Javascript 加载未应用就绪函数

Javascript 加载未应用就绪函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,在文档就绪时,我运行以下代码: jQuery(document).ready(function(){ jQuery('#button').click(function() { jQuery('#contact_form').load("/Users/mge/Downloads/jquery-ajax-1/readme.txt"); return false; }); }); 那么如果我创建一个像 &l

在文档就绪时,我运行以下代码:

 jQuery(document).ready(function(){  
        jQuery('#button').click(function() {
            jQuery('#contact_form').load("/Users/mge/Downloads/jquery-ajax-1/readme.txt");
            return false;
        });
    });
那么如果我创建一个像

<div id="contact_form">
  <form name="contact" method="post" action="">
    <fieldset>
      <label for="name" id="name_label">Name</label>
      <input type="text" name="name" id="name" size="30" value="" class="text-input" />

      <label for="email" id="email_label">Return Email</label>
      <input type="text" name="email" id="email" size="30" value="" class="text-input" />

      <label for="phone" id="phone_label">Return Phone</label>
      <input type="text" name="phone" id="phone" size="30" value="" class="text-input" />

        <br />
      <input type="submit" name="submit" class="button" id="button" value="Send" />
    </fieldset>
  </form>
</div>
是否必须对.load()执行某些操作才能将ready函数应用于它?

如下使用:

 jQuery(document).ready(function(){  
    jQuery('#button').live('click', function() {
        jQuery('#contact_form').load("/Users/mge/Downloads/jquery-ajax-1/readme.txt");
        return false;
    });
});

添加处理程序时,元素不存在。在所有情况下都需要侦听单击…这就是
.live()
的作用,它在DOM根上侦听单击,而
.click()
不会附加到任何内容,因为在调用选择器时没有与之匹配的元素
live()
稍后侦听匹配元素上的单击。

ready()
load()
之后不应用。在文档中查找
load()
,您可能可以指定加载完成时要执行的回调,在该回调中,您可以重新分配单击处理程序。

当DOM准备好使用时调用.ready事件,因此,当您动态加载某些内容并将其插入到已经存在的DOM中时,不会调用它

我还认为,通过将事件处理程序附加到表单,而不是“提交”按钮,定制表单提交工作是一种常见的做法。因为它还将处理用户以另一种方式提交表单而不是单击提交按钮的情况。例如:

jQuery("#contact_form form").submit(function (event) {
    event.preventDefault();
    // Do your stuff...
})
(event.preventDefault():)

jQuery("#contact_form form").submit(function (event) {
    event.preventDefault();
    // Do your stuff...
})