2013-09-30 51 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