无法使用jquery .on()通过函数传递数据

时间:2017-08-16 06:19:46

标签: javascript jquery

我已按照this链接将数据传递给动态创建的元素点击事件。但是,它不起作用。

for(var i=0; i<data.length; i++) {
    var meterDiv = $("<div></div");
    meterDiv.attr('class', "container-fluid");
    var meterData = data[i].stompNumber + "<br/>" + data[i].stompName + "<br/>" + data[i].postId; 
    meterDiv.html(meterData);
    var postId=data[i].postID;
    meterDiv.on("click",  {postid: postId}, function(event) {
        parkedMeter(event);
        console.log("paked at : " + event.data.postid);
    })

    $("#meterInfo").append(meterDiv); 
}
控制台上的

paked atundefined。与我的parkedMeter相同:

function parkedMeter(event) {
  console.log("postid " + event.data.postid);
}

1 个答案:

答案 0 :(得分:0)

根据jquery documentation

on function parameter 1)event 2)selector 3)data object 4)callbackfunction / handler。

由于您的代码缺少选择器,您应该添加任何选择器

 meterDiv.on("click","Selector Here" , {postid: postId}, function(event) {
    parkedMeter(event);
    console.log("paked at : " + event.data.postid);
})