javascript - jquery-ui-rails 可拖放功能不起作用

标签 javascript jquery ruby-on-rails jquery-ui jquery-ui-draggable

我正在使用jquery-ui-rails gem 。 我想实现一个可拖动和可放置的简单示例。这是 JavaScript 文件:

$('.draggable_images').draggable();
    $('#droppable1').droppable({
     drop: function(event,ui){
     $(this).addClass("ui-state-highlight").find("p").html("Added!");
  }
});

但是当图像被删除时,可删除p标签的内容不会改变。当我尝试 fiddle 时,相同的代码有效。我虽然这可能是 jquery-rails 和 jquery-ui-rails 兼容性的问题,但 jquery-rails 的版本是 3.1.2,ui-rails 是 5.0.3。

我做错了什么?

这些是其他文件:

html 文件 `

<% @ingredients.each do |ingredient| %>
  <li class = "draggable_images">
    <%= image_tag Ingredient.where(id: ingredient.ingredient_id).first.image_url%>
  </li>
<% end %>
</ul>

<style>
   #droppable1 { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; border-style: solid;}
</style>

<div id="droppable1">
  <p>Drop here</p>
</div>

应用程序.js

//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require turbolinks
//= require_tree .

/* Developer JS */
//= require welcome

应用程序.css

*= require jquery-ui
 *= require_tree .
 *= require_self

我还预编译了 Assets

最佳答案

看来问题出在 CSS 上。显然,可拖动的 li 元素比可放置的 div 更大(因为 li 是 block 大小,而 div 的宽度为 150px)。

请看一下这个example 。这表明如果您没有为可放置 div 设置 float 、宽度和高度,如下所示:

#droppable1 { padding: 0.5em; margin: 10px; border-style: solid; }

那么您的代码应该可以正常工作。

另一个选项是限制可拖动 li 的大小,使其适合目标 div。

关于javascript - jquery-ui-rails 可拖放功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28877417/

相关文章:

ruby-on-rails - 无法部署:Gem::LoadError:为数据库适配器指定 'postgresql',但未加载 gem

javascript - Chart.js + Angular 5 - Destroy() 通过 *ngFor 循环创建的多个动态图表

javascript - 是什么导致 svg 图像在调整大小时消失?

javascript - 需要指令 - 文件 url

javascript - 如何让加载更多数据附加到顶部?

jquery - 以编程方式在现有 html 标签之间插入 html 标签

c# - 为什么在 ASP.NET 中使用中继器?

javascript - 对服务器的更大请求与客户端上的更多 javascript

javascript - WebGL:gl.copyTexImage2D 竞争条件

javascript - 。玩();不适用于 HTML5 媒体元素