Javascript 使用动态div上的上下箭头进行Jquery排序

Javascript 使用动态div上的上下箭头进行Jquery排序,javascript,jquery,html,Javascript,Jquery,Html,我正在使用脚本生成div框: $('.FieldContainer a.add').click(function(){ $('.FieldContainer').append( '<div class="OrderingField">'+ '<div class="LeftFloat">'+ 'Item'+ '</div>'+ '<div class="RightFloat Command

我正在使用脚本生成
div
框:

$('.FieldContainer a.add').click(function(){
   $('.FieldContainer').append(
      '<div class="OrderingField">'+
      '<div class="LeftFloat">'+
      'Item'+
      '</div>'+
      '<div class="RightFloat Commands">'+
      '<button value="up" >Up</button>'+
      '<button value="down" >Down</button>'+
      '</div>'+
      '</div>'
   );
});
$('.FieldContainer a.add')。单击(函数(){
$('.FieldContainer')。追加(
''+
''+
“项目”+
''+
''+
“向上”+
“向下”+
''+
''
);
});
这是我的JSFIDLE链接

“向上-向下”按钮处理预加载的
div
元素,但使用上述脚本生成的div元素不会使用该按钮向上-向下移动

如何纠正这一点

编辑:

工作示例:

您需要在启动时应用
。click()
也可以在新创建的div上执行,因为jQuery选择器当前仅在启动时执行。您可以按如下方式执行此操作:

$('.FieldContainer a.add').click(function(){
    $('.FieldContainer').append(
        '<div class="OrderingField">'+
        '<div class="LeftFloat">'+
        'Item'+
        '</div>'+
        '<div class="RightFloat Commands">'+
        '<button value="up" >Up</button>'+
        '<button value="down" >Down</button>'+
        '</div>'+
        '</div>'
    ).find('button').click(function() { 
        var btn = $(this);
        var val = btn.val();
        if (val == 'up')
            moveUp(btn.parents('.OrderingField'));
        else
            moveDown(btn.parents('.OrderingField'));
    });
});
$('.FieldContainer a.add')。单击(函数(){
$('.FieldContainer')。追加(
''+
''+
“项目”+
''+
''+
“向上”+
“向下”+
''+
''
).find('按钮')。单击(函数(){
var btn=$(本);
var val=btn.val();
如果(val=='up')
上移(btn.parents('.OrderingField');
其他的
向下移动(btn.parents('.OrderingField');
});
});

更新:由于您的
click()
需要应用于按钮,因此我插入了
find('button')
选择器。我更新了。

您需要在启动时应用
。click()
也可以在新创建的div上执行,因为jQuery选择器当前仅在启动时执行。您可以按如下方式执行此操作:

$('.FieldContainer a.add').click(function(){
    $('.FieldContainer').append(
        '<div class="OrderingField">'+
        '<div class="LeftFloat">'+
        'Item'+
        '</div>'+
        '<div class="RightFloat Commands">'+
        '<button value="up" >Up</button>'+
        '<button value="down" >Down</button>'+
        '</div>'+
        '</div>'
    ).find('button').click(function() { 
        var btn = $(this);
        var val = btn.val();
        if (val == 'up')
            moveUp(btn.parents('.OrderingField'));
        else
            moveDown(btn.parents('.OrderingField'));
    });
});
$('.FieldContainer a.add')。单击(函数(){
$('.FieldContainer')。追加(
''+
''+
“项目”+
''+
''+
“向上”+
“向下”+
''+
''
).find('按钮')。单击(函数(){
var btn=$(本);
var val=btn.val();
如果(val=='up')
上移(btn.parents('.OrderingField');
其他的
向下移动(btn.parents('.OrderingField');
});
});

更新:由于您的
click()
需要应用于按钮,因此我插入了
find('button')
选择器。我更新了。

您需要在启动时应用
。click()
也可以在新创建的div上执行,因为jQuery选择器当前仅在启动时执行。您可以按如下方式执行此操作:

$('.FieldContainer a.add').click(function(){
    $('.FieldContainer').append(
        '<div class="OrderingField">'+
        '<div class="LeftFloat">'+
        'Item'+
        '</div>'+
        '<div class="RightFloat Commands">'+
        '<button value="up" >Up</button>'+
        '<button value="down" >Down</button>'+
        '</div>'+
        '</div>'
    ).find('button').click(function() { 
        var btn = $(this);
        var val = btn.val();
        if (val == 'up')
            moveUp(btn.parents('.OrderingField'));
        else
            moveDown(btn.parents('.OrderingField'));
    });
});
$('.FieldContainer a.add')。单击(函数(){
$('.FieldContainer')。追加(
''+
''+
“项目”+
''+
''+
“向上”+
“向下”+
''+
''
).find('按钮')。单击(函数(){
var btn=$(本);
var val=btn.val();
如果(val=='up')
上移(btn.parents('.OrderingField');
其他的
向下移动(btn.parents('.OrderingField');
});
});

更新:由于您的
click()
需要应用于按钮,因此我插入了
find('button')
选择器。我更新了。

您需要在启动时应用
。click()
也可以在新创建的div上执行,因为jQuery选择器当前仅在启动时执行。您可以按如下方式执行此操作:

$('.FieldContainer a.add').click(function(){
    $('.FieldContainer').append(
        '<div class="OrderingField">'+
        '<div class="LeftFloat">'+
        'Item'+
        '</div>'+
        '<div class="RightFloat Commands">'+
        '<button value="up" >Up</button>'+
        '<button value="down" >Down</button>'+
        '</div>'+
        '</div>'
    ).find('button').click(function() { 
        var btn = $(this);
        var val = btn.val();
        if (val == 'up')
            moveUp(btn.parents('.OrderingField'));
        else
            moveDown(btn.parents('.OrderingField'));
    });
});
$('.FieldContainer a.add')。单击(函数(){
$('.FieldContainer')。追加(
''+
''+
“项目”+
''+
''+
“向上”+
“向下”+
''+
''
).find('按钮')。单击(函数(){
var btn=$(本);
var val=btn.val();
如果(val=='up')
上移(btn.parents('.OrderingField');
其他的
向下移动(btn.parents('.OrderingField');
});
});

更新:由于您的
click()
需要应用于按钮,因此我插入了
find('button')
选择器。我已更新。

您正在绑定事件后添加元素。如果要在动态添加的元素上具有相同的事件,则需要在添加这些按钮后将单击绑定到这些按钮

在绑定事件后添加元素。如果要在动态添加的元素上具有相同的事件,则需要在添加这些按钮后将单击绑定到这些按钮

在绑定事件后添加元素。如果要在动态添加的元素上具有相同的事件,则需要在添加这些按钮后将单击绑定到这些按钮

在绑定事件后添加元素。如果要在动态添加的元素上具有相同的事件,则需要在添加这些按钮后将单击绑定到这些按钮。

$('.FieldContainer a.add')。单击(function(){
$('.FieldContainer a.add').click(function(){

    $('.FieldContainer').append(

    '<div class="OrderingField">'+
    '<div class="LeftFloat">'+
    'Item'+
    '</div>'+
    '<div class="RightFloat Commands">'+
    '<button value="up" >Up</button>'+
    '<button value="down" >Down</button>'+
    '</div>'+
    '</div>');

    $(".FieldContainer").sortable("destroy");
    $(".FieldContainer").sortable({
        items: ".OrderingField",
        distance: 10
    });

});
$('.FieldContainer')。追加( ''+ ''+ “项目”+ ''+ ''+ “向上”+ “向下”+ ''+ ''); $(“.FieldContainer”)。可排序(“销毁”); $(“.FieldContainer”).sortable({ 项目:“.OrderingField”, 距离:10 }); });
$('.FieldContainer a.add')。单击(函数(){
$('.FieldContainer')。追加(
''+
''+
“项目”+
''+
''+
“向上”+
“向下”+
''+
'');
$(“.FieldContainer”)。可排序(“销毁”);
$(“.FieldContainer”).sortable({
项目:“.OrderingField”,
距离:10
});
});
$('.FieldContainer a.add')。单击(函数(){
$('.FieldContainer')。追加(
''+
''+
“项目”+
''+
''+
“向上”+
“向下”+
''+
'');
$(“.FieldContainer”)。可排序(“销毁”);
$(“.FieldContainer”).sortable({
项目:“.OrderingField”,
距离:10
});
});
$('.FieldContainer a.add')。单击(函数(){
$('.FieldContainer')。追加(
''+
''+
“项目”+
''+
''+
“向上”+
“向下”+
''+
'');
$(“.FieldContainer”)。可排序(“销毁”);
$(“.FieldContainer”).sortable({
项目:“.OrderingField”,
距离:10
});
});
添加全局句柄