1

我已经合并了我的最后两个演示,现在发生了冲突。

这是我的 2 个演示

  1. 添加多个输入框 DEMO

  2. 向上/向下排序 -演示

合并演示

如果您查看合并的演示,排序选项仅适用于第一个输入框。这意味着您只能向上和向下移动第一个文本框,各个文本框的其他向上/向下按钮根本不起作用。

我需要它作为向上/向下排序演示,所有按钮都应该可以向上或向下移动相应的输入框。

提前致谢!!

代码

$(document).ready(function(){

     $(":radio").click(function(){
         $(".test").hide();
         var show = $(this).attr("data-show");
         $("#"+show).show(300)
     });

        $filtr = $('.filtr');

        $filtr.on('click', '.add', function(){
            $(this).closest('.loop').clone().appendTo( $(this).closest('.test') );
        });

        $filtr.on('click', '.del', function(){
           $(this).closest('.loop').remove();
        });

        $('#1lev, #2lev, #3lev').hide();

     //For sort up/down
     function moveUp(item) {
    var prev = item.prev();
    if (prev.length == 0)
        return;
    prev.css('z-index', 999).css('position','relative').animate({ top: item.height() }, 250);
    item.css('z-index', 1000).css('position', 'relative').animate({ top: '-' + prev.height() }, 300, function () {
        prev.css('z-index', '').css('top', '').css('position', '');
        item.css('z-index', '').css('top', '').css('position', '');
        item.insertBefore(prev);
    });
}
function moveDown(item) {
    var next = item.next();
    if (next.length == 0)
        return;
    next.css('z-index', 999).css('position', 'relative').animate({ top: '-' + item.height() }, 250);
    item.css('z-index', 1000).css('position', 'relative').animate({ top: next.height() }, 300, function () {
        next.css('z-index', '').css('top', '').css('position', '');
        item.css('z-index', '').css('top', '').css('position', '');
        item.insertAfter(next);
    });
}

$(".filtr").sortable({ items: ".loop", distance: 10 });
$('button').click(function() { 
    var btn = $(this);
    var val = btn.val();
    if (val == 'up')
        moveUp(btn.parents('.loop'));
    else
        moveDown(btn.parents('.loop'));
});

});
4

2 回答 2

1

请看一下http://jsfiddle.net/VMBtC/7/

我只改变了一行

$(document).on("click", "button", function() {

这是你的要求吗?让我知道你的意见。

于 2013-06-11T11:29:03.417 回答
0

代替文档选择器,选择最近的父选择器

$('.filtr').on('click','button' ,(function() {     

为了研究两者之间的区别,你可以看到这个 你也可以阅读.on 事件的直接和委托事件 部分

于 2013-06-11T12:22:38.993 回答