如何在单击事件jquery时传递参数

如何在单击事件jquery时传递参数,jquery,Jquery,我正在获取ready事件的json文件数据 $(document).ready(function(e){ $.getJSON( "data/wall.json", function( data ) { createWall(data); }); }) function createWall(data) { for(var i=0; i<data.length;i++){ var

我正在获取ready事件的json文件数据

    $(document).ready(function(e){
        $.getJSON( "data/wall.json", function( data ) {
            createWall(data);
        });
    })

    function createWall(data)
    {
        for(var i=0; i<data.length;i++){
    var stats = $("<p class='meta'><span>14 Days Ago</span><span class='comments' onclick='commentSection("+data[i]+")'>0 Comments</span><span class='likes'>Like</span></p>");
    $('#wall').append(stats);
}
    }

    function commentSection(data){
    console.log(data);
    }
$(文档).ready(函数(e){
$.getJSON(“data/wall.json”,函数(data){
createWall(数据);
});
})
函数createWall(数据)
{

对于(var i=0;i尝试以下操作:使用转义字符在数据周围加引号

function createWall(data)
{
        for(var i=0; i<data.length;i++){
    var stats = $("<p class='meta'><span>14 Days Ago</span><span class='comments' onclick='commentSection(\""+data[i]+"\")'>0 Comments</span><span class='likes'>Like</span></p>");
    $('#wall').append(stats);
   }
}
函数createWall(数据)
{

对于(var i=0;i由我轻微更改,我已在
data-
属性中传递了数据,并定义了一个启用
的事件。注释
类:

var stats = $("<p class='meta'><span>14 Days Ago</span><span class='comments' data-clk='"+data[i]+"' >0 Comments</span><span class='likes'>Like</span></p>");

$('body').on('click', '.comments', function(e){
   e.preventDefault(); 

   // Retrive Data
   var data = $(this).data('clk');
})
var stats=$(“

14天前的评论如

”; $('body')。关于('click','comments',函数(e){ e、 预防默认值(); //检索数据 var data=$(this.data('clk'); })
更合适的解决方案是使用事件委派和数据api,如

$(document).ready(function (e) {
    $.getJSON("data/wall.json", function (data) {
        createWall(data);
    });

    $('#wall').on('click', '.comments', function () {
        var data = $(this).closest('.meta').data('walldata');
        commentSection(data);
    });
})

function createWall(data) {
    for (var i = 0; i < data.length; i++) {
        var stats = $("<p class='meta'><span>14 Days Ago</span><span class='comments'>0 Comments</span><span class='likes'>Like</span></p>").data('walldata', data[i]);
        $('#wall').append(stats);
    }
}

function commentSection(data) {
    console.log(data);
}
$(文档).ready(函数(e){
$.getJSON(“data/wall.json”,函数(data){
createWall(数据);
});
$(“#墙”)。在('click','comments',函数(){
var data=$(this).closest('.meta').data('walldata');
评论组(数据);
});
})
函数createWall(数据){
对于(变量i=0;i14天前的评论类似于”

”)。数据('walldata',数据[i]); $('#wall')。附加(stats); } } 功能注释部分(数据){ 控制台日志(数据); }
It传递[object object]。非值传递值需要使用
data[i].property
@BhushanKawadkar,你不认为事件委派是更好的解决方案吗?@jQueryAngryBird,是的,这是Arun建议的更好的解决方案。一切正常。我不能用onclick加参数。但它调用时没有参数argument@MohaideenIsmail抱歉…修复了一个,但在读取数据时…它应该是
var data=$(此).closest(“.meta”).data('walldata');