【发布时间】:2021-03-03 22:39:47
【问题描述】:
我正在尝试创建一个调查问卷,让用户将图像从最喜欢到最少排列。我正在使用 SortableJS,因此可以拖放图像。我有当前在 console.log 中的图像位置。
但是,我正在尝试将其推送到字典中,以便将其格式化为:{0 : image2, 1:image1, 2:image3}。这可以让我看到每个索引处的图片,因此当用户点击提交时,可以再加载 3 张图片进行排名。
任何人都可以帮助如何让它做到这一点?字典不起作用,位置当前在数组中。
var ranked = {}
window.sessionStorage.setItem("ranked", JSON.stringify(ranked));
$( function() {
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
} );
$(function () {
$("#items").sortable({
start: function (event, ui) {
ui.item.toggleClass("highlight");
},
stop: function (event, ui) {
ui.item.toggleClass("highlight");
var order = $(this).sortable('toArray');
var positions = order.join(';');
var rank = positions;
console.log(rank);
var result = $(this).sortable('toArray', {rank: 'value'});
console.log(result)
}
});
$("#items").disableSelection();
});
<html>
<header>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-sortablejs@latest/jquery-sortable.js"></script>
<script type="text/javascript" src="/Users/rankWebsite/js/main.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="/Users/rankWebsite/css/mainstyle.css">
</header>
<body class=body>
<h1> Rank Images</h1>
<hr>
<div class="images">
<div id="items">
<img src="/Users/rankWebsite/images/image_1.jpg" id ="image1" style="width:150px;height:150px" >
<img src="/Users/rankWebsite/images/image_2.jpg" id="image2" style="width:150px;height:150px">
<img src="/Users/rankWebsite/images/image_3.jpg" id="image3" style="width:150px;height:150px">
</div>
</div>
<div class="button">
<button type="submit" onclick="submit()">Submit</button>
</div>
</body>
</html>
【问题讨论】:
-
一旦用户完成对多个图像数组的排名,我将使用 firebase 推送我的结果。我需要在位置上使用图像 1、图像 2 等的 src,因为每个用户都会以不同的顺序随机分配不同的数组。
-
不过,您似乎只需要获取一个数组,循环遍历它,然后构建一个对象(JavaScript 没有字典)。这有什么帮助吗? stackoverflow.com/questions/4215737/convert-array-to-object
-
这正是我所需要的!抱歉,这是一个基本问题,编程不是我的技能!非常感谢
标签: javascript jquery-ui-sortable ranking sortablejs