为什么数据方法在获取ID时无法正常工作?

时间:2014-06-06 18:11:20

标签: javascript jquery jquery-mobile

我正在尝试使用jquery的数据方法获取Id。我看到一个工作正常的示例。 http://jsfiddle.net/4ajeB/6/ 在此示例中,当用户单击添加按钮生成动态行时,右侧有图标":"它打开弹出.on点击编辑它给出行的id。实际上在这个例子中开发人员使用这个

$('.edit_h').data('originalId', id);

当我在我的例子中使用时,它给出了最后一个值。换句话说,如果你生成三行并点击任何行的图标,它会显示" tc_3"我也使用了同样的概念。但我不知道为什么我的输出出错了。

http://jsfiddle.net/4ajeB/7/

$('.edit_h').click(function(){

    alert("edit ID:"+$(this).data('originalId'));

})

1 个答案:

答案 0 :(得分:1)

问题是你正在打电话:

$('.edit_h').data('originalId', id);

每次添加测试用例。由于您只有一个弹出菜单,因此每次都会替换菜单上的数据属性,因此添加的最后一个将始终存在。

data属性应该在listitem而不是弹出窗口,然后当你单击listitem时,检索id并将其写入菜单数据属性。

$(document).on("click", ".edit_delete_copyFunctiontiy_h", function (e) {
    var id=$(this).data('originalid');
    $('.edit_h').data('originalid', id);
    $("#Mainnavpanel").popup("open", {
        positionTo: $(this)
    });
});

$('.edit_h').click(function(){    
    alert("edit ID: "+ $('.edit_h').data('originalid'));    
})
  

更新了 FIDDLE