2016-03-30 47 views
0

請您看看this demo,並讓我知道爲什麼我無法重新排序.popover-content類中的按鈕。我想這樣做是不同的順序呈現在#pop每次點擊按鈕的,正如你可以看到我使用關於在Div中使用jQuery重新排序內容的問題

$("#pop").on("click", function(){ 
    $('.popover-content > button').each(function() { 
     $(this).prependTo(this.parentNode); 
    }); 
}); 

但不重新排序按鈕!

var appcontent = '<button class="btn btn-success btn-block">Item 1</button><button class="btn btn-warning btn-block">Item 2</button><button class="btn btn-info btn-block">Item 3</button>'; 
 
$("#pop").popover({ 
 
    html: 'true', 
 
    title: "<span class='date-title'>Hello</span>", 
 
    content: appcontent 
 
}).on('shown.bs.popover', function() { 
 
    var popup = $(this); 
 
    $(this).parent().find("div.popover .close").click(function() { 
 
    popup.click(); 
 
    }); 
 
}); 
 

 
$("#pop").on("click", function() { 
 
    $('.popover-content > button').each(function() { 
 
    $(this).prependTo(this.parentNode); 
 
    }); 
 
});
body {padding:100px;} 
 
.popover {min-width:250px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
<div class="container"> 
 
    <h3>Bootstrap 3 Popover Reordering Content Example</h3> 
 
<button class="btn btn-default" id="pop">POP UP</button> 
 
</div>

+0

好吧,我不想刪除任何東西!爲什麼我會用'detach()'然後?! – Behseini

+2

我不認爲'.detach()'是必要的,因爲在DOM中的其他地方預先添加節點會隱式分離它。 @Behseini **會發生什麼?有錯誤嗎? *任何*變化? – Pointy

回答

1

它看起來對我來說,這些按鈕重新排序,但酥料餅過快消失,默認情況下。編輯2:看起來你需要一個值來跟蹤狀態;試試這個:

<div class="container"> 
     <h3>Bootstrap 3 Popover Reordering Content Example</h3> 
    <button class="btn btn-default" id="pop">POP UP</button> 
    </div> 

和:

var appcontent = '<button class="btn btn-success btn-block">Item 1</button><button class="btn btn-warning btn-block">Item 2</button><button class="btn btn-info btn-block">Item 3</button>'; 
var count = 0; 

$("#pop").popover({ 
      html: 'true', 
     title : "<span class='date-title'>Hello</span>", 
     content : appcontent 
    }).on('shown.bs.popover', function() { 
    var popup = $(this); 
    $(this).parent().find("div.popover .close").click(function() { 
     popup.click(); 
    }); 
    }); 

$("#pop").on("click", function(){ 
    if (count == 2) { 
    $('.popover-content > button').each(function() { 
     $(this).prependTo(this.parentNode); 
    }); 
    count = -1; 
    } 
    else if ($('.popover:visible').length == 1) { 
    count++; 
    } 
}); 
+0

感謝瑪格麗特現在工作,但這裏還有另一個問題!從技術上講,bootstrap必須在第二次點擊時關閉/隱藏彈出窗口,但popover仍然存在! – Behseini

+0

啊,這是一個小竅門 - 本質上,你想要在排序順序之間切換,但也保留了點擊顯示/隱藏功能?這些元素僅在顯示彈出窗口時才存在,並且排序順序只能在元素存在時才能操作。你可能需要額外的東西來跟蹤切換...我已經更新了我的答案,讓我知道它是否有效! – Margaret