2016-08-18 7 views
0

私は現在、「auditpoints」という巨大なテーブルを持っていますが、そのうちのいくつかは「自動化」されています。彼らが自動化されている場合は、彼らの列に歯車のアイコンが表示されます。歯車アイコンは、各行が受信する唯一のアイコンではありません。各行は、自動化されているかどうかにかかわらず、鉛筆とトグルボタンの2つのアイコンを受け取っていません。自動化されたポイントが「実行中」になると、「実行中」が終了するまで歯車アイコンが回転します。一度にこれらの点をすべて実行するコードを実装しましたが、私は小さな問題があります。これらのすべてのポイントを実行するために私のボタンをクリックすると、私が言及した3つのアイコンはすべて回転し、これは私が探している結果ではありません。私のコードスニペットでコメントアウトされた行(とそれにマッチする括弧)は、コードがすべての自動化された点を実行するのを防ぎます。行をコメントアウトすると、すべてのアイコンが回転します。私は、このラインは、自動化されたポイントを1回の実行で使用されるように正しく実行するために必要であることを知っています。歯車アイコンをクリックしなくても、ポイントを得ることができますので、クリックするべきではありません。私は何を変更するのか分かりませんが、そのクリック機能のクラスは歯車アイコンに関連しています。すべてのアイコンを1つに戻す

うまくいけば、これは解決するのは非常に簡単な質問であり、誰も時間を無駄にしないことを望みます。ありがとうございました!

private updateAuto() { 
     var self = this; 
     $(".auditPointRow").each(function() { 
      //self.el.on("click", ".update, .edit", function() {      
       var row = $(this).closest(".auditPointRow"); 
       var id = row.data("id"); 
       var automated = (<string>row.data("automated")).toLowerCase() == "true"; 
       var running = true; 
       if (automated && $(this).closest(".edit").length == 0) { 
        var gear = $(this).find(".fa"); 
        var maxTurns = 120; 
        gear.css("transition", "transform linear " + maxTurns * 2 + "s"); 
        gear.css("transform", "rotate(" + (maxTurns * 360) + "deg)"); 
        var request = $.ajax(self.root + "api/sites/" + self.site.ID + "/auditpoints/" + id, { 
         "type": "PATCH", data: JSON.stringify([ 
          { 
           Op: "Replace" 
           , Path: "/score" 
           , Value: "run" 
          } 
         ]) 
        }); 
        request.done(function() { 
         gear.css("transition", "").css("transform", "rotate(0deg)"); 
         row.prev().find("td").css("background-color", ""); 
         if (row.prev().qtip("api")) { 
          row.prev().qtip("api").destroy(true); 
         } 
        }); 
       } 
      //} 
     }); 
    } 
+0

これは本当に残酷です。単純に回転するCSSクラスを適用し、削除するだけで十分です。いいえ? – Pogrindis

+0

@ Pogrindis回転する問題とは関係ないので、私は言及しないことを決めた他のものがあります – BlueBarren

答えて

0

私は私の問題の解決策を見つけたと思います。私は.eachを使って、すべての "ギア"を通り、回転させるだけでした。何らかの理由で

private updateAuto() { 
    var self = this; 
    //$(".auditPointRow").each(function() { 
     $(".update, .edit").each(function() {      
       //Left out the rest of the code so this answer isn't too 
       //long, none of it changed if that matters. 
     }); 
    //}); 
} 

結果は非常にゆっくりと実行されます(それが実行されます!)と私は、誰もが任意のより良い提案/最適化を持っている場合は、なぜここにそれらを残すこと自由に感じなさいわかりません。

編集:私が.eachを2度も実行しなかったことに気がつきました。それが減速していたので、最初にauditPointsを通過したものを削除し、代わりにギア付きのものを削除しました。

関連する問題