如何将对象参数传递给反引号中的onclick函数

时间:2019-02-26 10:44:46

标签: javascript jquery

当我单击时,我试图在反引号中运行onclick函数。

反引号:

   socket.onmessage = function(event){
   console.log(event.data);
   const data = JSON.parse(event.data);
    data.map((person)=>{
        console.log(person)
       $("#unknown-persons").append(`
       <div class="media p-l-5">
       <div class="pull-left">
           <img width="40" src="${person.image}" alt="">
       </div>
       <div class="media-body">
           <small class="text-muted">${new Date(parseInt(person.time))}</small><br/>
           <a data-toggle="modal" href="#modal-unknown-person" onclick="labelingToUser(person)">${person.name} ${person.lastname}</a>
       </div>
   </div> 
   `)

    })
   }

onclick功能:

function labelingToUser(){}

但是我无法将person对象作为参数传递给我的onclik函数。我该怎么办?

2 个答案:

答案 0 :(得分:0)

人不是全局对象,因此附加功能无法访问。

尝试一下

var personglobal;
socket.onmessage = function(event){
   console.log(event.data);
   const data = JSON.parse(event.data);
    data.map((person)=>{
personglobal = person;
        console.log(person)
       $("#unknown-persons").append(`
       <div class="media p-l-5">
       <div class="pull-left">
           <img width="40" src="${person.image}" alt="">
       </div>
       <div class="media-body">
           <small class="text-muted">${new Date(parseInt(person.time))}</small><br/>
           <a data-toggle="modal" href="#modal-unknown-person" onclick="labelingToUser(personglobal)">${person.name} ${person.lastname}</a>
       </div>
   </div> 
   `)

    })
   }

答案 1 :(得分:0)

您可以使用JSON.stringify(person)方法来转换对象ot json字符串 然后将其传递给如下调用的函数:

  socket.onmessage = function(event){
   console.log(event.data);
   const data = JSON.parse(event.data);
    data.map((person)=>{
        console.log(person)
       $("#unknown-persons").append(`
       <div class="media p-l-5">
       <div class="pull-left">
           <img width="40" src="${person.image}" alt="">
       </div>
       <div class="media-body">
           <small class="text-muted">${new Date(parseInt(person.time))}</small><br/>
           <a data-toggle="modal" href="#modal-unknown-person" onclick="labelingToUser(${JSON.stringify(person)})">${person.name} ${person.lastname}</a>
       </div>
   </div> 
   `)

    })
   }


function labelingToUser(person){}