为 jquery ui 可排序列表中的每个项目添加一个删除按钮

Posted

技术标签:

【中文标题】为 jquery ui 可排序列表中的每个项目添加一个删除按钮【英文标题】:Adding a delete button to each item in jquery ui sortable list 【发布时间】:2016-12-09 01:20:15 【问题描述】:

我正在尝试为 Rails 中的 jquery ui 可排序列表中的每个项目添加一个删除按钮。我可以添加项目并出现按钮,但是当我单击它时,它会刷新页面并且所有 javascript 部分都变得不可用。

这就是我所做的;

咖啡:

$ ->
  $( "#sortable" ).sortable(
    revert: true
  );
  $( "#draggable" ).draggable(
    connectToSortable: "#sortable",
    helper: "clone",
    revert: "invalid"
  );
  $( "ul, li" ).disableSelection();

  $('#additem').click (e) ->
    e.preventDefault()
    text = $("#e2").val()
    $li = $('<li class=\'alert alert-info\' style="font-weight: bold;"/>').text(
          text).append(
          $('<a />', 'id' : 'delete', 'class': 'glyphicon glyphicon-remove', 'href': '#', 'style' : 'float: right;'))
    $('#sortable').append $li
    $('#sortable').sortable 'refresh'
    return

  $('#sortable #delete').click ->
    $(this).parent().remove()
    return

html(导轨):

  <h3>Questions</h3>
  <%= select_tag 'user', options_for_select(@questions.collect |q| [q.content] ), id: "e2", name: "add1" %>

  <a href="#" id="additem" class="btn btn-primary">Add Question</a><br />
  <ul id="sortable">

  </ul>

【问题讨论】:

【参考方案1】:

添加一个使用 html 的按钮,该按钮由 rails 生成

<a href="/question/question_id" data-remote="true"  data-method="delete" data-comfirm="Are you sure?" role = "button" class="btn btn-remove">delete
</a>

在链接生成过程中忘记放置方法:delete 和 remote:true

【讨论】:

它没有给出任何响应。 Javascript 部分甚至没有损坏。什么都没有发生。【参考方案2】:

我找到了解决方案。一部分是here。

正确的添加项目脚本:

$('#additem').click (e) ->
  e.preventDefault()
  text = $("#e2").val()
  $li = $('<li class=\'alert alert-info\' style="font-weight: bold;"/>').text(text).append(
        $('<a data-remote="true" id=\"delete\" class=\"glyphicon glyphicon-remove\" href=\"#\" style=\"float: right;\"></a>'))
  $('#sortable').append $li
  $('#sortable').sortable 'refresh'
  return

还有删除项目功能是错误的。这是工作脚本:

$('#sortable').on 'click', '#delete', ->
  $(this).parent().remove()
  return

【讨论】:

以上是关于为 jquery ui 可排序列表中的每个项目添加一个删除按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery UI 中将多个可排序列表相互连接?

jQuery UI可排序点击事件

JQuery UI:在 Droppable Drop 时取消排序

jQuery UI - 放置事件后克隆可放置/可排序列表

没有 jQuery UI(或根本没有 jQuery?)的可排序/可拖动列表项

jQuery-UI 可拖动和可排序