2013-09-30 22 views
1

我在JavaScript中使用slideToggle时遇到了一些问题。 我有一个叫.reveal的类,当我点击它时,我想要类窗口出现。但是,我只想要滑动窗口工作,当我点击父类.reveal,而不是当我在类内部单击.Window ..如果我有我的.Window类fx中的按钮。当我点击它时,滑动滑块会启动:当父母被点击时,只滑动滑行

<div class="reveal"> 
Reveal 
    <div class="Window"> 
     <input type="button" id="Create" value="CLICK" /> 
    </div> 
</div> 

$(function() { 
    $('.reveal').click(function() { 
     $(this).children('.Window').slideToggle(); 
    }); 
}); 

如何在单击父类时使滑动切换仅工作?

+1

$(本)。儿童()的slideToggle();可能是..什么是#RevealWindow? –

+0

Woops,我的坏。应该是.Window。现在编辑。 – Adnaves

回答

3

根据您当前的HTML结构,这是它应该是怎样发生的,点击.Window会起泡高达.reveal click事件,因为它是父,所以无论是通过订阅的click事件需要stopPropagation().Window或在现有点击事件中单独检查单个目标,从而避免另一个事件注册表。相反,试试这个:

$(function() { 
    $('.reveal').click(function(e) { 
     if(e.target == this) //check if target is .reveal only if so trigger else ignore. 
     $(this).children('.Window').slideToggle(); 
    }); 
}); 

Fiddle