是否可以手動觸發jQuery排序控件的事件?jQuery手動排序觸發排序事件
我試過$(selector).trigger('sortstop')
但似乎沒有發生。
一些相關的HTML:
<div data-zone="name">
<div class="section disabled" id="section-1">Some section template 1</div>
<div class="section" id="section-2">Some section template 2</div>
<div class="section" id="section-3">Some section template 3</div>
</div>
<button class="trigger-button">Trigger stop</button>
和一些JavaScript代碼:
$("[data-zone]").sortable({
placeholder: 'ui-state-highlight',
cancel : ".section.disabled",
stop: function(){
console.log('sort-stopped');
}
})
$(".trigger-button").click(function(){
console.log('trigger-button clicked');
var $zone = $('[data-zone]');
console.log($zone);
$zone.trigger('sortstop');
});
問題的JsFiddle。
爲什麼你需要手動觸發sortstop?你不能把停止功能的內容放在另一個函數中嗎?並直接調用第二個函數? – Nal
主要問題是代碼中的閉包。雖然我參考了該區域,但每個區域都有一個「切換移動」,可以移動該區域。我試圖有一個身體點擊處理程序,將取消移動,因爲所有其他控件是隱藏的。我想我已經通過適當的封閉解決了它。我會稍後更新jsfiddle –