【问题标题】:jquery sortable cancel remove based on confirmationjQuery可排序取消删除基于确认
【发布时间】:2012-04-04 14:32:03
【问题描述】:

如果对确认框的响应是否定的,我正在尝试取消删除功能上的可排序。这是我的可排序无序列表。

$("#items").sortable({
    remove: function(event, ui) {  
      var id = ui.item.attr("id");
      var loadUrl = "LoadItem.action";
      var removeUrl = "RemoveItem.action";

      $.getJSON(loadUrl, {"id":id}, function(data){
        if (data.passed !== undefined){
          var answer = confirm("A status exists on this item.  Remove anyways?");
          if (!answer){
            $(this).sortable('cancel');  //<-- This is where I need help
            return false;
          }
          $.post(removeUrl, {"id":id}, function(){ 
            //alert('removed'); 
          });
        }
      });
    }
  });

当我单击取消时,它会阻止我的 $.post(removeUrl); 按预期触发,但该行项目仍会移动到另一个可排序列表。我希望它取消订单项移动。在接收事件中使用$(ui.sender).sortable('cancel'); 可以这样工作,但是有没有办法在删除事件中做同样的事情?

【问题讨论】:

    标签: javascript jquery json jquery-ui jquery-ui-sortable


    【解决方案1】:
    $("#items").sortable({
      remove: function(event, ui) {  
      var id = ui.item.attr("id");
      var loadUrl = "LoadItem.action";
      var removeUrl = "RemoveItem.action";
    
      var self = this;
      $.getJSON(loadUrl, {"id":id}, function(data){
        if (data.passed !== undefined){
          var answer = confirm("A status exists on this item.  Remove anyways?");
          if (!answer){
            $(self).sortable('cancel');
            return false;
          }
          $.post(removeUrl, {"id":id}, function(){ 
            //alert('removed'); 
          });
        }
      });
    }
    });
    

    【讨论】:

    • 谢谢,我第一次错过了self的赋值,现在可以正常使用了。
    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2023-03-28
    相关资源
    最近更新 更多