2016-11-10 102 views
0

讓答案變得如此簡單,但它無法讓我工作... 標題說明了一切,也許有人可以幫助我。當點擊同一div內的按鈕時關閉div

_doc.on('click','.settings',function() { 
    $('.icon-bar').fadeIn(200); 
}); 

_doc.on('click','.close_btn',function(e) { 
    $('.icon-bar').hide(e.currentTarget.id); 
    $('.icon-bar').fadeOut(200); 
}); 

打開它的按鈕被稱爲'settings',應該關閉div的按鈕被稱爲'close_btn'。

+1

您可以發佈您的HTML呢? – Bharat

+4

您調用'hide()'的語法不正確。我建議你完全刪除該行,說實話,因爲它是相當多餘的,如果你想元素'fadeOut()' –

+0

創建一個足夠清晰的演示來解釋你想要做什麼什麼是預期的輸出和什麼是問題。發佈您的HTML以及。 – Manish

回答

1

讓我試着解釋。 當用戶點擊按鈕,我們的事件將觸發

_doc.on('click','.close_btn',function(e) { 

}); 

這裏我們可以使用最接近()

_doc.on('click','.close_btn',function(e) { 
    jQuery(this).closest('div').hide(); 
}); 

如果我們要使用類選擇

_doc.on('click','.close_btn',function(e) { 
    jQuery(this).closest('.parent_div').hide(); 
}); 

它會隱藏按鈕,具有class =「parent_div」的父元素。 讓我知道是否需要更多解釋。

+0

做得好我的朋友,你做的工作,最後一件事是什麼是需要的是:當我打開與按鈕的div:'設置',它打開多個'圖標欄',但我只需要一個特定的我點擊,我希望你明白我的意思 –

+0

在這種情況下,你需要把東西按特定的順序排列 '

Settings
' 在這種情況下,您使用'jQuery(this).siblings('。icon-bar')。show )'或'jQuery(this).closest('div')。find('。icon-bar')。show();'你也可以用孩子而不是find –

+0

我真的很高興你能幫助我,這確實是最後一個,非常感謝你,祝你有美好的一天! –

0

試試這個

//to remove completely from page 
     $('.button_class').parents('.parent-div-class').remove(); 
    // to hide only 
    $('.button_class').parents('.parent-div-class').fadeOut('fast'); 

父母函數將選擇這個按鈕 像

  <div class="parent-div-class"> 
      <div> 
       <button attribse></button> 
      </div> 
     </div> 
0

你要像this的outter包裝DIV?

檢查此琴:https://jsfiddle.net/egocgn9y/

CSS:

div{ 
    border : 2px solid green; 
    width : 100px; 
    height : 100px; 
    float: left; 
    margin-left : 2px; 
} 
div input[type="button"]{ 
    float:right; 
} 

HTML:

<div> 
    <input id="btnClose1" type="button" Value="X"> 
</div> 
<div> 
    <input id="btnClose2" type="button" Value="X"> 
</div> 

JS:

$('#btnClose1').on("click", function(){ 
    this.parentElement.remove();     
}); 
$('#btnClose2').on("click", function(){ 
    this.parentElement.remove();    
}); 
相關問題