在点击时交换两个项目
Swap two items on clicks
我想选择两个元素,当我单击button元素时,我想让它们交换位置,我该怎么做呢?我已经搜索并寻找了类似的答案,但其中大多数只是上下交换元素。
我想这样写:
$('button').click(function(){
$('#item 1 .selected-item').removeClass('.selected-item').appendTo('#item2');
$('#item 2 .selected-item').removeClass('selected-item').appendTo('#item1');
});
但是我不知道如何开始,它应该看起来像这样:
http://jsfiddle.net/tLNAh/1/(我的小提琴)
试试这个。http://jsfiddle.net/tLNAh/3/
$("button").on("click", function() {
$first = $(".selected:eq(0)");
$second = $(".selected:eq(1)");
var tempText = $first.text();
$first.text($second.text());
$second.text(tempText);
$("#instructionText").text("Instructions: choose an item");
});
在你的标记中这样做:
$("button").on("click", function() {
$('.selected').insertBefore($('ul:eq(1) li:first'));
});
演示或者你可以这样更新:
$("button").on("click", function() {
if($('.selected').closest('ul').index() < $('.selected').closest('ul').siblings('ul').index()){
$('.selected').insertBefore($('ul:eq(1) li:first'));
}else{
$('.selected').insertBefore($('ul:eq(0) li:first'));
}
});
更新小提琴
查看此链接
为您的ul提供id:
<ul id="item1">
<ul id ="item2">
试试这个:
$("button").on("click", function() {
$("#instructionText").text("Instructions: choose an item");
$('#item1 .selected').removeClass('selected').remove().appendTo('#item2');
$('#item2 .selected').removeClass('selected').remove().appendTo('#item1');
});
$("body").on("click","li", function(e) {
$(this).toggleClass("selected");
$("#instructionText").text("Instructions: choose the item to change place with");
});
你必须得到列表元素的索引,并使用这个:http://jsfiddle.net/faceleg/FJt9X/2/
var swapElements = function(siblings, subjectIndex, objectIndex) {
// Get subject jQuery
var subject = $(siblings.get(subjectIndex));
// Get object element
var object = siblings.get(objectIndex);
// Insert subject after object
subject.insertAfter(object);
}
$(function() {
swapElements($('li'), 0, 1);
});
试试这个:
function swapItems(first, second) {
var sibling = first.next();
if (sibling.length) {
first.insertBefore(second);
second.insertBefore(sibling);
} else {
sibling = first.prev();
if (sibling.length) {
first.insertBefore(second);
second.insertAfter(sibling);
} else {
var parent = firstItem.parent();
first.insertBefore(second);
second.appendTo(parent);
}
}
}
更新小提琴
编辑:我更新了小提琴,现在你必须点击按钮来交换项目。
相关文章:
- 如何使用仅显示/查看两个项目的甘特图
- Javascript 库,一次包含两个项目
- 请问JavaScript中的两个项目有什么区别
- 下划线.js,从一个对象中获取两个项目并添加到顶部
- Javascript localStorage unshift 数组在两个项目后停止追加
- Maven结合了两个项目
- 缩放两个项目
- 在同一集合中添加两个项目
- 下拉|材料设计|两个项目|重叠
- select2.js-如何在选项元素内对齐两个项目
- 筛选和比较两个项目的列表
- 猫头鹰旋转木马,一次滚动两个项目
- 如何排序json与两个项目
- 当两个项目被选中时创建一个效果
- . net WebApp中的下拉列表-是否可以在列表中的一个或两个项目下划下划线?
- 在两个项目之间共享组件,同时保留热加载
- 在图像和标尺之间对齐两个项目
- jQuery类选择器-我可以瞄准两个项目
- Ember.js:View在呈现前两个项目后停止更新
- 一个容器中两个项目的延迟效应自动化