【问题标题】:PHP / jQuery reloading the DOMPHP / jQuery 重新加载 DOM
【发布时间】:2012-11-25 06:35:17
【问题描述】:

新手,正在努力学习。

我在页面左侧有一个帐户名称表。当我单击其中一个帐户名称时,相关字段将显示在表单中。然后我可以更新任何字段并单击“更新”以更新底层 SQL 数据。

我还有一个文本字段和一个按钮来添加另一个帐户。这只是添加了一条新记录,其中帐户名称作为唯一填写的字段。现在我希望能够在上面提到的表格中单击该帐户,然后更新新帐户的信息。但是,单击表格中的帐户不再导致其字段显示在表单中。

要添加帐户,我会在 PHP 页面上发布帖子,然后将该页面创建的 HTML 加载到包含表格的 div 中。到目前为止一切顺利。

 $("button#new").click (function (){
     company = $("input#newaccount").val();

     $.post ('db_addaccount.php',
     {'company':company},showaccounts)
      return;
  }) 

  function showaccounts(data){
     $('div#table').html(data)
  }

但是,我知道这个新加载的 HTML 会破坏 DOM,我不能再期望单击表格中的一行并在我的表单中反映字段。

我知道 .on 功能,但不知道在这种特殊情况下是否/如何使用它。

任何建议将不胜感激。

【问题讨论】:

    标签: jquery dom refresh


    【解决方案1】:

    希望您为多个元素使用类,例如每个帐户,而不是相同的 ID 等。您需要使用 on() 作为委托事件处理程序,在下面的示例中,tableID 将是 ID您的表(不是动态的?)和.accounts 将是每个帐户(使用 $.post 函数动态插入):

    $('#tableID').on('click', '.accounts', function() {
        //do stuff
    });
    

    【讨论】:

    • 是的,我正在使用类,我想你的建议。我的问题是我在错误的事件上使用了 .on(即添加新帐户的事件而不是我想要显示的表格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2012-11-06
    • 2021-10-03
    • 1970-01-01
    相关资源
    最近更新 更多