前导警报的jQuery“bug”使其有效

时间:2013-01-31 22:36:28

标签: jquery

我有一个简单的点击功能切换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');            
    }
}

请注意唯一的区别是警报被取消注释(我甚至不想告诉你我花了多长时间才弄明白这个问题......大笑)

那么,这笔交易是什么?为什么在警报上等待/点击确定允许班级==' holdhilight rowhover'匹配,但没有警报,它没有(即使这个地方的警报说它确实匹配,但一旦警报到位,它再次工作......大声笑)

我在尝试关闭它之前30秒在浏览器中等待,这没有任何解决方法。它不是永远运行的脚本。

无论如何,这都包含在ready()函数中。

我使用最新的1.9版ie8特定环境(内联网)

1 个答案:

答案 0 :(得分:0)

我终于通过使用动作处理程序作为执行其他操作的函数来实现此功能。这应该是显而易见的,我觉得愚蠢回答它,但是,嘿,也许它可以帮助其他人在路上。

$('#'+id).toggle('fast', function() {
//all the hash location stuff here will fire after the toggle is done. 
});