2011-06-13 74 views
1

我有一张表单,可以在单击它时显示记录的更多细节。详细信息位于具有“描述”类的子div中。我已经将曝光切换得很好,但是我想避免在已经暴露的元素上调用click函数(即我不想重新显示已经显示的内容)。基于动态分配的类别值跳过点击功能

我试过.bind和.live没有运气。基本上,我希望有一些方法可以让新的类别分配在DOM中“激活”。

在此先感谢您的帮助!

jQuery的

$(document).ready(function(){ 

     $('#libraryBrowser tbody tr:not(.exposed)').click(function(){ 
      $('.exposed').slideUp('fast');               //hide previously shown element 
      $(this).find('div.description').slideToggle('slow').addClass('exposed');    //show selected item's description, flag exposure 
     }); 

}); 
+0

您是否想要已经暴露过的元素(以及后来可能隐藏的)不能再次暴露的能力?或者也许这是另一回事 - 而且你实际上正在经历它,而你不想要它? (这是代码的样子) – ub1k 2011-06-13 16:47:00

+0

不,他们应该可以重新触摸。它被应用于表格行 - 当用户点击时,他们获得更多信息。如果他们点击其他内容,则隐藏前一个元素的“更多”内容,并显示新行的信息。这个特定的问题是关于如果用户点击已经扩展的行,保持重新加载的效果。 – sdowswell 2011-06-16 11:59:37

回答

0

我不想再显示什么 已经显示

您可以使用is:visible过滤器选择器来查看元素是否已经显现如果是这样,你只需要退出功能使用return false这样的事情:

if ('.yourelementclass').is(':visible')){ 
    return false; 
} 

您需要在实际显示图像的代码之前加入该代码。

+0

优秀!奇迹般有效。 – sdowswell 2011-06-13 18:04:15

+0

不客气 – Sarfraz 2011-06-13 19:24:59

+1

@sdowswell:如果它像魅力一样工作 - >将答案标记为接受:) – ub1k 2011-06-16 12:50:11