如果Condition在回调函数内返回false

时间:2016-10-12 05:32:21

标签: jquery

我有两个div容器,我可以在这两个容器之间拖放视频。

在放弃div之前,我正在检查此视频是否已存在于第二个div容器内。

如果它不存在于第二个div容器内,那么只有我放弃它或者什么也不做。

为此,我使用回调函数stop来检查这种方式

stop: function(event, ui) {
  var video_id = $(ui.item).attr('video-id')
  var checker = checkifVideoExists(video_id);

  if (checker) {
    return false;
  } else {
    return true;
  }
}

function checkifVideoExists(videoid) {
  var flag = false;
  $("#excersisesinpac .portlet").each(function() {
    if ($(this).attr('video-id') === "" + videoid + "") {
      flag = true;
    } else {
      flag = false;
    }
  });
  return flag;
}

但遗憾的是,此条件仅适用于拖动Video6时,但不适用于Video5(仅将视频拖入第二个容器)

https://jsfiddle.net/Lphf43wd/9/

1 个答案:

答案 0 :(得分:1)

您的代码无法正常工作:

  1. 当您发现列表中已包含该元素时,您不会中断$.each。需要在return false;内向$.each break申请return true.portlet继续)。
  2. 你的内部列表总是有loans_west,因为drag-n-drop会将该元素临时移动到你的列表中。
  3. jsfiddle