在FF和IE中切换速度问题

时间:2011-10-23 09:08:46

标签: jquery

$j('.sentence').toggle(
function(){ 
        $j(".tooltip:not(this)").hide();
        $j(".question-tt").show();
        $j(this).parent().find(".answer-tt").show();
        $j(this).parent().find("span").show();
        $j(this).parent().find(".show").show();
        $j(this).parent().find(".explanation").hide();
        $j(this).parent().find(".hide").hide();   
        $j(".sentence:not(this)").removeClass("current-2");
        $j(this).addClass("current-2"); 
},
function(){ 
        $j(this).removeClass("current-2");
        $j(this).parent().find(".answer-tt").hide();
});

我有很多.sentence个div,当我点击其中一个div时很多次切换就好了,但是当我经常点击其他的时,它有时不会得到任何点击,1-2秒后它会再次运作。
这适用于Chrome,但不适用于FF和IE。
这可能是因为切换过程中有很多动作,但我需要保留它们 对于实例:http://bit.ly/pG4Uma点击第一个“查看此部分”然后再次第一行,您会看到有4行在点击时有切换操作,然后逐个点击,您可以看到问题。 ..

1 个答案:

答案 0 :(得分:0)

您可以按如下方式优化功能,

$j('.sentence').toggle(
function(){ 
        $j(".tooltip:not(this)").hide();
        $j(".question-tt").show();
        var parentElement = $j(this).parent();
        parentElement.find(".answer-tt").show();
        parentElement.find("span").show();
        parentElement.find(".show").show();
        parentElement.find(".explanation").hide();
        parentElement.find(".hide").hide();   
        $j(".sentence:not(this)").removeClass("current-2");
        $j(this).addClass("current-2"); 
},
function(){ 
        $j(this).removeClass("current-2");
        $j(this).parent().find(".answer-tt").hide();
});

同样,您可以添加隐藏元素的css样式,而不是执行以下操作,

parentElement.find(".show").show();
parentElement.find(".hide").hide();