代码之家  ›  专栏  ›  技术社区  ›  thecoshman

如何不在事件属性中使用JavaScript,但仍然通过AJAX加载

  •  1
  • thecoshman  · 技术社区  · 16 年前

    我目前正在通过AJAX加载HTMl内容。

    我有不同元素的代码 onclick 属性(和其他事件属性)。

    它确实有效,但我开始发现代码越来越大,而且很难阅读。我还读到过这样的“内联”事件代码被认为是不好的做法,我真的应该这样做 element.onclick = foobar 并拥有 foobar 在别的地方定义的。

    我了解如何使用静态页面很容易做到这一点,只要在页面底部有一个脚本标记,一旦加载页面,就可以执行它。然后可以根据需要附加任何和所有事件。

    如果有人需要的话,我可以发布一些代码示例,但我不知道什么样的东西可以帮助人们完成这个任务。我要指出的是,我已经在使用Jquery了,如果它有一些有用的小函数,那就太好了!

    小代码示例

    这是通过AJAX请求加载的代码示例

    <input type="submit" name="login" value="login" onclick="
    if(check_login(this.form)){
      Window_manager.windows[1].load_xml('login/display.php?username=' + this.form.username.value + '&amp;password=' + this.form.password.value);
    } else {
      return false;
    }">
    

    我知道这只是一个小样本,但这正是我所关注的。加载内容时如何附加此代码?

    2 回复  |  直到 16 年前
        1
  •  3
  •   Piotr Rochala    16 年前

    jQuery查询 .live() 方法可能就是你想要的。它会将click事件附加到新创建的HTML元素上,因此不需要每次重新加载更新面板时都调用.click()。

        2
  •  0
  •   selfawaresoup    16 年前

    docuemnt.getElementById('foo').onclick = function () {
       //do your stuff here
    }
    

    如果链接元素在HTML代码中出现,这将与绑定“onclick”属性中的事件具有相同的效果。

    这样,您就可以生成更清晰的HTML,更易于阅读和维护。