2013-05-22 50 views
1

我試圖獲取它,所以當可拖動元素停止了我分配stopPropagation的兩個元素。代碼我到目前爲止,沒有錯誤,但沒有工作。jQuery Draggable Stop:停止傳播元素的函數

$("#pop_up").draggable({ 
     handle: "#pop_header", 
     containment: "parent", 
     stop:function(e) { 
      if ($(e.target).attr('id') === "submit") { 
       e.stopPropagation(); 
       return false; 
      } 
      else if ($(e.target).attr('id') === "close") 
      { 
      e.stopPropagation(); 
      return false; 
      } 
     } 
}); 

基本HTML mockup-

<div id="pop_up"> 
    <div id="pop_header"> 
    <span class="button" id="submit"></span> 
    <span class="button" id="close"></span> 
    </div> 
    <div id="pop_body"> 

    </div> 
</div> 

任何想法如何讓這些元素變成可點擊截至目前他們沒有像點擊我告訴我的jQuery來do.-

$('.button #close').click(function() { 
    $('#pop_up').hide(); 
}); 
$('.button #submit').click(function() { 
     var miniVis = $('#minimize_wrapper').css('display'); 
    if(miniVis ==="block"){ 
     $('#minimize_wrapper').slideUp(); 
    } else { 
     $('#minimize_wrapper').slideDown(); 
    } 
    }); 
+1

'$(。button #close)'不是萬能的,因爲你試圖深入一層。只需按#關閉和#提交按鈕即可。 – Daniel

+1

雅知道我在我的JS這樣 - 「.close#提交」沒有進一步去一個元素的空間。我對上面那個錯誤不好。反正我回答了我自己的問題。 – EasyBB

回答

0

好吧,我所要做的就是將第一個可拖動的代碼更改爲此 -

$("#pop_up").draggable({ 
    handle: "#pop_header", 
    containment: "parent", 
    stop:function(e) { 
     if ($(e.target).attr('id') === "parent-of-buttons") { 
      e.stopPropagation(); 
      return false; 
     } 
    } 
}); 

然後,我改變了第二代碼這個 -

$('#parent-of-buttons').on('click','#close',function(){ 
    $('#pop_up').hide(); 
}); 
$('#parent-of-buttons').on('click','#submit',function(){ 
    var miniVis = $('#minimize_wrapper').css('display'); 
if(miniVis ==="block"){ 
    $('#minimize_wrapper').slideUp(); 
    } else { 
    $('#minimize_wrapper').slideDown(); 
    } 
}); 

好希望這將幫助其他人試圖做到這一點。您無法停止按鈕本身的傳播,但您可以停止傳播該父元素。