TableDnD не работает с span в td jquery - PullRequest
0 голосов
/ 11 сентября 2018

Я создаю таблицу, в которой у меня есть перетаскиваемый tr, я использовал TableDnD для перетаскиваемого компонента.

Код выглядит следующим образом:

$(document).ready(function () {
    var iCnt = 1;
    $("#tblQuestionAns tr").each(function () {
        var id = "tr" + parseInt(iCnt);
        $(this).attr("id", id);
        iCnt++;
    });
    $("#tblQuestionAns").find("tr :even").addClass("even");
    $("#tblQuestionAns").find("tr :odd").addClass("odd");
    $("#tblQuestionAns").tableDnD({
        onDragClass: "myDragClass",
        onDrop: function (table, row) {
            $("#tblQuestionAns").find("tr").removeClass("even odd");
            $("#tblQuestionAns").find("tr :even").addClass("even");
            $("#tblQuestionAns").find("tr :odd").addClass("odd");
        }
    });
});

Это работает, когда я создаю таблицу, подобную следующей:

<table id="tblQuestionAns">
    <tr>
        <td>
            Test1
        </td>
    </tr>
    <tr>
        <td>
            Test2
        </td>
    </tr>
</table>

, но когда я добавляю span в td, он не будет работать, вот пример:

<table id="tblQuestionAns">
    <tr>
        <td>
            <span>Test1</span>
        </td>
    </tr>
    <tr>
        <td>
            <span>Test2</span>
        </td>
    </tr>
</table>

здесь JSFiddle для справки

1 Ответ

0 голосов
/ 11 сентября 2018

Вы пытались отключить события указателя на промежутке? Это работает нормально для меня. Не уверен, что это то, что вы пытаетесь достичь.

$(document).ready(function() {
  var iCnt = 1;
  $(".tblQuestionAns tr").each(function() {
    var id = "tr" + parseInt(iCnt);
    $(this).attr("id", id);
    iCnt++;
  });
  $(".tblQuestionAns").find("tr :even").addClass("even");
  $(".tblQuestionAns").find("tr :odd").addClass("odd");
  $(".tblQuestionAns").tableDnD({
    onDragClass: "myDragClass",
    onDrop: function(table, row) {
      $(".tblQuestionAns").find("tr").removeClass("even odd");
      $(".tblQuestionAns").find("tr :even").addClass("even");
      $(".tblQuestionAns").find("tr :odd").addClass("odd");
    }
  });
});
span {
  pointer-events: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/isocra/TableDnD/master/js/jquery.tablednd.js"></script>
<div>
  without span
</div>
<table class="tblQuestionAns">
  <tr>
    <td>
      test1
    </td>
  </tr>
  <tr>
    <td>
      test2
    </td>
  </tr>
</table>
<div>
  with span
</div>
<table class="tblQuestionAns">
  <tr>
    <td>
      <span>test1</span>
    </td>
  </tr>
  <tr>
    <td>
      <span>test2</span>
    </td>
  </tr>
</table>
...