javascript - 拖动 DIV 时不触发函数

标签 javascript jquery jquery-ui jquery-ui-draggable

我有.main-container DIV,其中有2个子DIV,我想让这些DIV可拖动。

我正在利用 jquery-ui 来实现这一点。如果我编写以下代码,我就可以拖动:

index.js

$( function() {
    $( ".text1" ).draggable({containment: 'parent'});
  } )


  $( function() {
    $( ".text2" ).draggable({containment: 'parent'});
  } )

现在我想让上面的代码动态化,即我想创建一个函数,它将接收类名作为参数。

像这样:

function drag(val){
    console.log("here", val)
        $(val).draggable({containment: 'parent'});

  }

但是,当我创建一个函数时,它不起作用。有人让我知道这里出了什么问题。

index.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>New POC</title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <link rel="stylesheet" href="./index.css">
</head>
<body>
    <div class="main-container">
        <div class="text1" ondrag="drag('.test1')">Text 1</div>
        <div class="text2" ondrag="drag('.test2')">Text 2</div>
    </div>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"
    integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
    crossorigin="anonymous"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script src="./index.js"></script>
</body>
</html>

最佳答案

您需要在标签中添加一个可拖拽='true'的附加属性:

<div class="text1" draggable='true' ondrag="drag('.test1')">Text 1</div>
<div class="text2" draggable='true' ondrag="drag('.test2')">Text 2</div>

关于javascript - 拖动 DIV 时不触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54925225/

相关文章:

javascript - 正则表达式将字符串计数与通配符匹配

Javascript 和 html : Is there a way to find a top level named window(or tab) and bring it to foreground instead of loading url into it?

jquery - 如何在代码标签中的某些文本周围放置一个 span 标签?

javascript - 在回发过程中保留动态插入的内容

php - JQuery UI 自动完成,将所有数据加载到 DOM 中而不是从 mysql 数据库中获取

asp.net-mvc - 对话框中的部分 View

JavaScript 数组返回

javascript - 如何将 Ember 查询参数与 beforeModel 和 select 一起使用?

javascript - 如果在 IE 中的 body 元素上使用边距,则 Jquery offset 不会给出预期值

javascript - jQuery UI 可排序 & contenteditable=true