javascript - Jquery 可使用动态 div 上的上下箭头进行排序

标签 javascript jquery html

我正在使用脚本生成 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>'
   );
});

这是我的 jsfiddle http://jsfiddle.net/maziar/P2XDc/链接

上下按钮适用于预加载的 div 元素,但使用上述脚本生成的 div 元素无法使用该按钮上下移动。

如何纠正这个问题?

编辑:

工作示例: http://jsfiddle.net/P2XDc/182/

最佳答案

您还需要在新创建的 div 上应用启动时执行的 .click(),因为 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'));
    });
});

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

关于javascript - Jquery 可使用动态 div 上的上下箭头进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515629/

相关文章:

javascript - 使用 Protractor 检查复选框

javascript - 在服务器目录中查找最新的 JSON 文件

javascript - Google map 在 JQuery Mobile 中显示不正确

html - 我应该使用哪种 html 文档类型?

javascript - Js 在 Rails 中渲染部分的正确位置

javascript - 如何使用其数据计算所有可见 div 的总和,如果 div 变为隐藏,也会重新计算

html - 多个单选按钮转换为带有 css 的单选按钮?

html - 框阴影弧 CSS

javascript - 使用文本节点将 JSON 数据渲染到准备好的 HTML 页面中

javascript - HTML 字符串 ( ) 破坏 JSON