0

セル内にドロップ可能な div を使用して、JS を介してテーブルを作成しました。要素をそこにドロップすると、tge drop 関数が 2 回起動します。(コンソールを参照)。forループと関係があると思います...

Jsbin : http://jsbin.com/OMIbOGU/50/edit

JS

$("document").ready(function(){

  function init(){
    var table = $("<table></table>");
    $("body").append(table);
    for(var i=0 ;i < 9; i++){
      var row = $("<tr></tr>");
      var cell =  $("<td></td>");
      for(var j = 0;j<2;j++){
        var slot = $("<div></div>").addClass('slot');

        slot.droppable({
          accept: ".unassigned",
          tolerance: "touch",
          drop:function(){
            console.log("dropped");
          }
        });

        if (j!==1)
          slot.addClass("dotted");
        cell.append(slot);
      }
      row.append(cell);    
      table.append(row);

    }

    $(".unassigned").draggable({
      revert: "invalid",
      snap: "td div"
    });
  }

  for(var k = 0 ; k<4;k++)
    init();
});
4

2 に答える 2

-1

耐性が原因のようです:「タッチ」、これを試してください

Javascript

slot.droppable({
    accept: ".unassigned",
    tolerance: "pointer",//changed "touch" -> "pointer"
    drop:function(){
        console.log("dropped");
    }
});

または、ドロップ ターゲットの div 間にさらにスペースを追加して、隣人に「接触」しないようにします。

于 2013-09-02T13:08:06.857 に答える