【问题标题】:$(document).ready(function() after HTML injectionHTML 注入后的 $(document).ready(function()
【发布时间】:2013-01-16 18:20:05
【问题描述】:

我正在尝试实时编辑数据。为此,我找到了这个脚本

http://www.9lessons.info/2011/03/live-table-edit-with-jquery-and-ajax.html

当在 php 文件中创建表时,脚本运行良好,但我试图通过 javascript 注入表来做到这一点。

这是我的php页面

<script type="text/javascript" src="javascript/default/gebruikers.js"></script>
<div id="adminGebruikersDiv" class="adminGebruikersDiv"></div>
<script type="text/javascript">
    onload = function() { loadGebruikers(); };
</script>

函数 loadGebruikers 创建表并将其注入到 div 中。现在我想让这段代码工作

$j(document).ready(function() {
    $j(".rij").click(function() {}).change(function() {});
    $j(".editbox").mouseup(function() {});
$j(document).mouseup(function() {});
});

那么我该如何使用 jquery 来做到这一点

编辑:现在可以工作了

$j(document).on("ready", function() {
    $j(document).on("click", ".rij", function() {}).on("change", function() {});
    $j(document).on("mouseup", ".editbox", function() {});
    $j(document).on("mouseup", ".document", function() {});
});

【问题讨论】:

  • 这是使用 .on 的正确方式吗?那里没有.on()
  • 看看我回答中的例子。
  • 请看on() documentation 你需要先指定事件,再指定元素。另外,请not 发布语法错误的代码。您在原始代码中缺少右括号 );。我们怎么知道这不是它不起作用的原因?您可以使用jsfiddle 之类的工具来帮助您确定代码的格式以及语法的正确性。

标签: jquery inject document-ready


【解决方案1】:

您应该使用.on 将事件附加到动态元素。

$j(document).on("click", ".rij", function() { ... });

【讨论】:

  • 或者 .live 如果你使用的是旧版本的 jQuery
  • 我使用的是 jquery 1.9,所以 .live 不起作用。 .on 也不起作用,但也许我做错了 $j(document).ready(function() { $j(".rij").click(function() { }).change(function() { }); $j(".editbox").mouseup(function() { } $j(document).mouseup(function() { }); });
  • @eric22269:但你没有使用.on
  • @eric22269:我认为您必须仔细阅读我在 cmets 中针对您的问题链接的 on 文档。无论如何,我并不是说要阅读手册以获得您的答案,因为我们总是很乐意提供帮助,但是如果您缺少理解答案的基本要素(不要侮辱),您可能需要阅读它很快。
  • @Aleksandr M,好的,谢谢您的帮助。 .on 有效,尽管我的代码仍然有问题。我去读了一些文档,看看我能不能弄明白。
猜你喜欢
  • 1970-01-01
  • 2010-12-11
  • 2011-04-01
  • 2011-05-22
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
相关资源
最近更新 更多