0

こんばんは、ユーザーがテーブル行をクリックしたときに背景色などを設定するJavaScript関数があります。関数が 2 回呼び出されない限り、または開発ツールで F12 キーを押すと、関数が 2 回呼び出されない限り正しく実行されないのと同様の状況で、関数が正しく実行されません

以下のように処理できましたが、問題は、ユーザーがテーブル行をクリックすると、背景色が変更されるまでに約2〜3秒かかることです。関数が 2 回実行される時間を短縮するにはどうすればよいですか?

JavaScript

    <SCRIPT LANGUAGE="JavaScript"> 
         setBackGroundColorOnIE (tableRowNumber) {
              //........
              //........
              setBackGroundColorOnIE (tableRowNumber)//I need the function to perform twice in one call
         }
    </SCRIPT>

私はそれが悪い習慣であることを知っていますが、IE9 の互換性の問題を修正する方法がまったくわかりません。それで、私はこのようなものを出しました。いくつかのヒントとアドバイスが必要です。上級者に感謝します。

4

2 に答える 2

0

簡単な解決策は、色を変更し、色の変更が完了したときにコールバックできる jquery ui を含めることです。これは、jquery と jquery ui を使用した JS フィドルです。http://jsfiddle.net/kqMs9/

$(function(){
$('button').on('click', function(){
    $('.background').animate({
        backgroundColor: '#000'
    }, 1500, function(){ alert('background-color changed!');});

});

});

于 2013-09-05T03:54:17.003 に答える
0

次のように、関数を再度実行する必要があるかどうかを確認する条件を追加できます。

function setBackGroundColorOnIE (tableRowNumber) {   
   //check if your condition is met
   if( some_condition) {
       var timerId = setTimeout(function() {
        setBackGroundColorOnIE (tableRowNumber);
       }, 5000); //set to 5 seconds
   }
   else {
       clearTimeout ( timerId );
   }
}
//call the function
setBackGroundColorOnIE(some_value); 
于 2013-09-05T03:54:59.743 に答える