【问题标题】:jquery on drop function doesnt workjquery on drop 函数不起作用
【发布时间】:2018-12-17 13:58:15
【问题描述】:

我正在为我的 JavaScript 游戏创建库存系统,我遇到了我的第一个问题。这是我的 HTML 和 JavaScript 代码:

HTML

<div class="body backpack">
  <div class="itemSlot">
    <div class="item" draggable="true">
      <svg width="24" height="24" viewBox="0 0 24 24">
        <path d="M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z"></path>
      </svg>
      <div class="itemInfo">
        <h4>Wooden Sword</h4>
        <p>Lorem </p>
      </div>
    </div>
  </div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>  
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>  
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
  <div class="itemSlot"></div>
</div>

JavaScript

$(document).ready(function(){
    var draggedItem;
    $(".item").on("dragstart", function(ev){
        draggedItem = this;
        console.log(draggedItem)
    })
    $(".itemSlot").on("dragover", function(ev){
        console.log("You can drop it here!")
    })
    $(".item").on("drop", function(ev){
        console.log("test")
    })
});

您可以在此处https://codepen.io/anon/pen/oMvQgQ?editors=1111 看到正在运行的代码。

当我拖动项目时,它 console.logs 正确,当我将拖动器项目悬停在可放置插槽上时,它 console.logs 也正确,但是当我放下项目时,它 console.log任何东西。

我不知道我做错了什么。

谢谢你,祝你有美好的一天。 :)

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

您可能正在寻找 dragstop 事件:

$(".item").on("dragstop", function(ev){
    console.log("test")
})

http://api.jqueryui.com/draggable/#event-stop

【讨论】:

  • 感谢您的回答,但我没有 JqueryUI
【解决方案2】:
$(document).ready(function(){
    var draggedItem;
    $(".item").on("dragstart", function(ev){
        draggedItem = this;
        console.log(draggedItem)
    })
    $(".itemSlot").on("dragover", function(ev){
        event.preventDefault();
        console.log("You can drop it here!")
    })
    $(".item").on("drop", function(ev){
        console.log("test")
    })
});

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2012-05-20
    • 2011-05-04
    相关资源
    最近更新 更多