1

クリックすると、divを切り替える簡単な関数があります。クラスをチェックして、「強調表示された」状態のクラスを削除する必要があるかどうかを判断します。

これは、holdhiliteクラスの削除に失敗します。

function togglediv(id){
    //alert('toggle id= '+id);
    $("#"+id).toggle("fast");
    if(window.location.hash.split("#")[1]==justtheid(id)){
        var scr = document.body.scrollTop;
        window.location.href = '#';
        document.body.scrollTop = scr;          
    }       
    var trid = "tr_"+justtheid(id);
    if($("#"+trid).attr('class')=='holdhilight rowhover'){
        $("#"+trid).removeClass('holdhilight');         
    }
    else{
        $("#"+trid).addClass('holdhilight');            
    }
}

一方、これは100%機能します。

function togglediv(id){
    alert('toggle id= '+id);
    $("#"+id).toggle("fast");
    if(window.location.hash.split("#")[1]==justtheid(id)){
        var scr = document.body.scrollTop;
        window.location.href = '#';
        document.body.scrollTop = scr;          
    }       
    var trid = "tr_"+justtheid(id);
    if($("#"+trid).attr('class')=='holdhilight rowhover'){
        $("#"+trid).removeClass('holdhilight');                         
    }
    else{
        $("#"+trid).addClass('holdhilight');            
    }
}

唯一の違いは、アラートがコメント化されていないことです(これが問題であると理解するのにどれくらいの時間がかかったかを教えたくありません...笑)

それで、取引は何ですか?アラートで待機/[OK]をクリックすると、class =='holdhilight rowhover'が一致するのに、アラートがない場合は一致しないのはなぜですか(このスポットのアラートは実際に一致すると言っていますが、アラートが配置されると、再び動作します...笑)

ブラウザを閉じる前に30秒間待っていましたが、修正することはできませんでした。実行に永遠にかかるスクリプトではありません。

とにかく、これはすべてready()関数にラップされています。

最新の1.9を使用しているIE8固有の環境(イントラネット)にいます

4

1 に答える 1

0

アクションハンドラーを関数として使用して他のことを行うことで、ようやくこれが機能するようになりました。これは明白なはずで、私はそれに答えるのが馬鹿げていると感じます、しかしねえ、多分それは将来誰かを助けるでしょう。

$('#'+id).toggle('fast', function() {
//all the hash location stuff here will fire after the toggle is done. 
});
于 2013-02-14T23:29:01.183 に答える