0

私はJQueryにあまり慣れていないので、しばらくお待ちください。

基本的に、いくつかの JQuery スクリプトを実行するビューに 2 つのハイパーリンクがあります。

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

したがって、これらの各リンクは、同じ .js ファイルの異なる部分にアクセスします。私の「削除」は、データベースでソフト削除を行う処理を行います。DOM が読み込まれ、これは正常に機能します。私はfirebugを使用しています.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 を取得しません。ただし、ブラウザーを更新すると、期待どおりに実行されます。つまり、実行に関する undo jquery が実行されます。

4

1 に答える 1

0

完全なコードがなければ、見分けるのは困難です。あなたの投稿、タイトル、コメントから、2 つの原因が考えられます。

まず、DOM の準備が完全に整う前にコードを実行している可能性があります。次に、すべての JavaScript 初期化スクリプトを次のようにラップしてみてください。

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

第二に、削除をクリックしたときに「入力」を削除していますか?この場合、「検索」で復元されないのが普通でしょう。このような場合に元に戻すための解決策は、「入力」を非表示にして、「元に戻す」をクリックしたときに元に戻すことです。

于 2013-11-01T17:11:08.940 に答える