0

我对 JQuery 不太熟悉,所以请耐心等待。

本质上,我在运行一些 JQuery 脚本的视图上有两个超链接:

     <a href='#' class="deleteCustomer">Delete</a></td>
       .
       .
     <a href="#" class="undoCustomer">Undo</a>

因此,这些链接中的每一个都访问同一个 .js 文件的不同部分。我的“删除”做了一些处理,在数据库中进行了软删除。DOM 加载,这工作正常。我正在使用萤火虫,当我在 .js 中插入一个 console.log 时,我可以看到我想要删除的客户的 id,其余的都是直截了当的。

$(container).find('a.deleteCustomer:first').click(function(e) {
            console.log("CustomerId " + $(container).find('input[name=Customer_CustomerId]:first').val());

但是,我的“撤消”在不同的行上访问相同的 .js,并且 .js 的“撤消”部分中的 console.log 显示它没有被击中。

$(container).find('a.undoCustomer').click(function(e) {
    console.log("CustomerId " + $(container).find('input[name=Customer_CustomerId]:first').val());

所以,看来 DOM 还没有准备好(?)。如果是这种情况,我该如何解决?我必须手动重新加载 DOM 吗?如果是这样,怎么做?

PS 当我首先单击“撤消”时,似乎什么都没有发生,即我在 FireBug 中没有得到任何 console.logs。但是,如果我刷新浏览器,它会按预期运行,即关于执行的撤消 jquery。

4

1 回答 1

0

没有完整的代码,很难分辨。从您的帖子、标题和评论中,我看到了两个可能的原因。

首先,您可能在 DOM 完全准备好之前运行代码,然后尝试将所有 javascript 初始化脚本包装在:

$(function() {
   ... // your code here
});

第二,你是不是在点击删除的时候删除了“输入”?如果是这种情况,“查找”不会恢复它是正常的。在这种情况下进行撤消的解决方案是隐藏“输入”并在单击“撤消”时将其显示回来。

于 2013-11-01T17:11:08.940 回答