2012-03-13 60 views
0

只需在将课程再次应用于其他元素之前删除高亮课程。重置所选项目。怎么样?无法在再次应用课程之前删除课程

removeClass在下面的代码中不起作用。

$("#toggleCustom").on("click", function() { 
    var $this = $(this), 
    $domtree = $this.parents('div.section').find('div.domtree'), 
    query = $this.prev().val(); 
    //$domtree.removeClass('highlight').animate({ marginLeft: 0 }, 'fast'); 
    $domtree.find(query).addClass('highlight').animate({ marginLeft: 10 }, 'fast'); 
}); 

回答

2

removeClass仅在该组匹配你怎么称呼它了jQuery实例的元素行为;不在后代那套。从你的代码:

$domtree.find(query).addClass('highlight').animate({ marginLeft: 10 }, 'fast'); 

...它看起来像类实际上应用于后代元素(一个或多个)(例如,那些在query选择匹配)。

您可以找到并删除其在所有类似的后代:

$domtree.find(".highlight").removeClass("highlight"); 
+0

啊,我明白你的意思。让我检查:)。一件事。有没有更好的方法来编写上面的代码? 。只是想知道。 – Pirzada 2012-03-13 19:06:24

+0

@shahid:不可能说没有更多的信息,虽然第一脸红看起来不错。 – 2012-03-13 19:09:44

+0

@ t-j-crowder:谢谢你的帮助 – Pirzada 2012-03-13 20:13:05