绑定功能仅适用于最后一个元素

时间:2016-03-13 01:58:58

标签: javascript jquery cordova

我正在创建一个存储我的作业的应用程序,每当我触摸家庭作业的li时,这个作业的信息就会从sqlite数据库中显示出来。我的问题是,当我从javascript添加每个li时,我绑定一个函数,这样每次触摸项时它都会返回它的uid。但每当我添加一个新的hw时,其他的都不会返回他们的uid。

我的一些代码:

function newFormSuccess(tx, results){
    var lista = $("#lHw");
    var obj = $(
        '<li><a id="' + results.id + '" href="#detalle" data-uid=' + results.id +
        ' class="ui-btn ui-btn-icon-right ui-icon-carat-r" data-transition="pop" data-direction="reverse">' +
        '<h2>' + results.title + '</h2>' +
        '<p>' + results.desc + '</p><p>' + results.date + '</p>' +
        '<p class="ui-li-aside">Type</p></a>' +
        '</li>'
    );
    obj.find('#' + results.id).bind('click', function (e) {
        $.id = $(this).data('uid');
    });
    lista.append(obj).listview('refresh');
    $.mobile.changePage("#home");
}

有什么建议吗?为什么会这样?

1 个答案:

答案 0 :(得分:2)

我通过将绑定更改为.on来解决问题,并在设备就绪函数上使用它,我认为这就是委托评论的全部内容。

$("#lHw").on("click", "li a", function(e){
        $.id= $(this).data('uid');
    });