Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取多个元素的位置_Javascript_Jquery_Position_Draggable_Each - Fatal编程技术网

Javascript 获取多个元素的位置

Javascript 获取多个元素的位置,javascript,jquery,position,draggable,each,Javascript,Jquery,Position,Draggable,Each,我试图使用jQuerys.position和.each函数获取多个可拖动元素的单独位置 这就是我目前所拥有的 JS function newAppDraggable() { $('.App').draggable({ containment: "#AppBox", grid: [ 60, 60 ], stack: ".App" }); }; $(function() { $('.AppList').droppable({

我试图使用jQuerys.position和.each函数获取多个可拖动元素的单独位置

这就是我目前所拥有的

JS

function newAppDraggable() {
    $('.App').draggable({
        containment: "#AppBox",
        grid: [ 60, 60 ],
        stack: ".App"
    });
};

$(function() {
    $('.AppList').droppable({
        accept: ".App",
        tolerance: 'fit',
        drop: function(event, ui) {
            $(".App").each(function( index ) {
            var position = $(this).position();
            var posTop = position.top;
            var posLeft = position.left;
            $( "#posThis" ).html(index+":"+posTop+":"+posLeft);
            });
        }
    });
});
HTML

<div class="AppList">
    <div id="TimenDate" class="App Fixed Size110x350">
    </div>

    <div id="User" class="App Fixed Size110x290">
    <p id="posThis"></p>
    </div>

    <div id="Weather" class="App Fixed Size110x350">
    </div>
</div>

这里有一个更好的解释。在小提琴上,索引保持在2,位置仅在移动第三个应用程序时改变


我希望能够获得所有单个应用程序的位置,并可能将它们保存在cookie(或类似的东西)中的数组中,以便在刷新页面时可以将它们重新加载到最后的位置。

使用普通javascript和支持

以下两个示例都经过了修改,以演示如何将每个元素获得的位置添加到阵列中,以便以后访问

你可以通过这项技术获得位置信息

var apps = document.querySelectorAll(".App"),
    positions = [];

Array.prototype.forEach.call(apps, function (app, index) {
    var positionInfo = app.getBoundingClientRect();

    positions.push(positionInfo);
    console.log(index + ":" + positionInfo.top + ":" + positionInfo.left);
});

console.log(positions);

在上述示例中,broswer还必须支持和

使用jquery,它将是这样的,使用

关于

JavaScript®(通常缩写为JS)是一种轻量级、可解释、, 具有一流函数的面向对象语言,最著名的是 用于网页的脚本语言,但在许多非浏览器中使用 环境,如node.js或Apache CouchDB

JavaScript标准是ECMAScript。截至2012年,所有现代浏览器 完全支持ECMAScript 5.1。较旧的浏览器至少支持 ECMAScript 3。该标准的第六次主要修订正在进行中。 可以查看不同新功能和改进功能的当前进展 接着是专门的维基

网站的这一部分专门介绍JavaScript语言 本身,不是特定于网页或其他主机的部分 环境。有关特定于网页的API的信息,请 见多姆。阅读更多关于DOM和JavaScript如何在 DOM引用

关于

jQuery是一个快速、小且功能丰富的JavaScript库。它使 HTML文档遍历和操作、事件处理、, 使用易于使用的API,动画和Ajax更加简单 跨多种浏览器。结合了多功能性和 可扩展性,jQuery改变了数百万人 编写JavaScript

关于

总结

将消息输出到Web控制台

关于

零基编号是一种编号方式,其中 序列被分配索引0,而不是索引1 在日常环境中很典型

Javascript

数组是一些内置方法的类似列表的对象 执行遍历和变异操作


在普通javascript和支持

以下两个示例都经过了修改,以演示如何将每个元素获得的位置添加到阵列中,以便以后访问

你可以通过这项技术获得位置信息

var apps = document.querySelectorAll(".App"),
    positions = [];

Array.prototype.forEach.call(apps, function (app, index) {
    var positionInfo = app.getBoundingClientRect();

    positions.push(positionInfo);
    console.log(index + ":" + positionInfo.top + ":" + positionInfo.left);
});

console.log(positions);

在上述示例中,broswer还必须支持和

使用jquery,它将是这样的,使用

关于

JavaScript®(通常缩写为JS)是一种轻量级、可解释、, 具有一流函数的面向对象语言,最著名的是 用于网页的脚本语言,但在许多非浏览器中使用 环境,如node.js或Apache CouchDB

JavaScript标准是ECMAScript。截至2012年,所有现代浏览器 完全支持ECMAScript 5.1。较旧的浏览器至少支持 ECMAScript 3。该标准的第六次主要修订正在进行中。 可以查看不同新功能和改进功能的当前进展 接着是专门的维基

网站的这一部分专门介绍JavaScript语言 本身,不是特定于网页或其他主机的部分 环境。有关特定于网页的API的信息,请 见多姆。阅读更多关于DOM和JavaScript如何在 DOM引用

关于

jQuery是一个快速、小且功能丰富的JavaScript库。它使 HTML文档遍历和操作、事件处理、, 使用易于使用的API,动画和Ajax更加简单 跨多种浏览器。结合了多功能性和 可扩展性,jQuery改变了数百万人 编写JavaScript

关于

总结

将消息输出到Web控制台

关于

零基编号是一种编号方式,其中 序列被分配索引0,而不是索引1 在日常环境中很典型

Javascript

数组是一些内置方法的类似列表的对象 执行遍历和变异操作


那么这在jQuery上不起作用?我所有的脚本都在jQuery和我使用的所有插件中。我想我现在不能改变一切。感谢您的意见,为什么您需要更改jquery(jquery是一个javascript库,一组用javascript编写的例程,供用户在javascript中使用)?哦,对不起,我误解了您所说的香草脚本。那么我将如何用我现有的代码实现这一点呢?别介意我看到您添加了jquery代码:)我已经更改了您的脚本,将位置放在标记中,我得到了相同的结果。现在您已将其更改回第三个应用程序。我得到的结果与之前相同,索引为2,位置为第三个应用程序的位置,所以这在jQuery上不起作用?我所有的脚本都在jQuery和我使用的所有插件中。我想我买不起c