gpt4 book ai didi

JQuery Sortable - 从 "update"事件中禁用 "receive"事件?

转载 作者:行者123 更新时间:2023-12-01 06:01:49 26 4
gpt4 key购买 nike

我正在使用可排序的有序列表并根据以下内容更新数据库:

  1. 将新项目拖到列表中,调用“receive”事件来执行数据库插入
  2. 对列表进行排序,更新数据库中的显示顺序。

现在,由于“更新”和“接收”事件都是可排序的一部分,并且每个事件都设置为执行 ajax post(异步),因此我无法控制这些事件的顺序。我需要在“更新”事件之前触发并完成“接收”事件。

我的想法是从接收事件内部取消绑定(bind)更新事件,然后重新绑定(bind)或手动调用更新事件,但我无法让它工作。

我是 jquery 的新手,所以非常感谢任何帮助!!!

提前致谢,乍得

    $("#myMovieListItems").sortable({
receive: OnReceive,
update: OnSortableUpdate,
placeholder: 'ui-state-highlight',
containment: 'document',
revert: true
});
function OnReceive(event, ui) {
//Disable the update event and manually call it on success of this event
$("#myMovieListItems").unbind("update");

//Set ID of new list element with it's original value
var newItem = $(this).data().sortable.currentItem;
newItem.attr('id', $(ui.sender).attr('id'));

//Get Data to pass to AJAX method
droppedID = newItem.attr('id');
droppedName = $.trim(newItem.first().contents().filter(function () {
return this.nodeType == 3;
}).text());

messageContainer.html(progressMessage);
source = "Facebook";

$.ajax({
type: 'POST',
url: GetSiteRoot() + 'DesktopModules/Incite/MovieRotation/Handlers/Sortable.asmx/InsertMovie',
data: '{strMovieName: \'' + droppedName + '\', intMovieListID: \'' + movieListID + '\', strSource: \'' + source + '\', strSourceID: \'' + droppedID + '\'}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: OnAddMovieSuccess,
error: OnSortableUpdateError
});
}

最佳答案

我在排序时遇到了同样的问题,最终使用了 underscore.js 的 debounce

http://underscorejs.org/#debounce

它可以将事件处理程序包装在计时器中,例如您可能触发了多个事件但只想调用处理程序一次。对于可排序,我在接收和更新上触发自定义事件,然后有一个去抖动处理程序监听该事件,并通过计时确保仅在收到最后一个事件时调用一次。

关于JQuery Sortable - 从 "update"事件中禁用 "receive"事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com