首页 > 技术文章 > 如何在onclick事件中传递对象参数?

yongzhu 2021-11-17 09:25 原文

 

1. 普通的onclick传递对象

var user = {id:1, name:'zs', age:20};

var ele = '<a οnclick="edit(' + JSON.stringify(user).replace(/"/g, '&quot;') + ');">修改</a>';

或者

var ele = '<a οnclick="edit(\'' + JSON.stringify(user).replace(/"/g, '&quot;') + '\');">修改</a>';

 

前者取到的是json对象,后者取到的是json字符串。

2.  模板字符串中传递对象

this.groupDeviceListData.forEach((item) => {
          let marker = new AMap.Marker({
            map: this.map,
            zIndex: 9999999,
            position: [item.longitude, item.latitude],
            // w这里用来显示你需要自定义的图标 这里使用三目运算就比较方便了
            icon: new AMap.Icon({
              image:
                item.status == 1
                  ? require("@/assets/images/online.png")
                  : require("@/assets/images/offline.png"),
              // imageSize: [64, 64],   // 类似bacrground-size 大小
              size: [64, 64], // 图标尺寸 默认[36,36]
            }),
          });
          let status = "";
          let i = JSON.stringify(item).replace(/"/g, "&quot;");
          // i.push(item);
          console.log(i);

          status = item.status == 1 ? "在线" : "离线";
          marker.content = `<div class="deviceBox"> 
                            <div class="deviceBox-header">
                            ${item.device_name} 
                            </div>
                           <div class="deviceBox-con">
                              <p><span>回路数量</span><em class="right"> ${item.loop_list.length}</em></p>
                              <p><span>状态</span><em class="right"> ${status}</em></p>
                              <p><span>经纬度</span><em class="right"> ${item.longitude} , ${item.latitude}</em></p>
                            </div>
                            <span class="loopBtn" onclick="singleLoop('${i}')">回路控制</span>
                          </div>`;

          marker.on("mouseover", this.infoOpen);
          //注释后打开地图时默认关闭信息窗体
          // marker.on("mouseout", infoClose);
          // marker.on("click", newMAp);
          this.map.add(marker);
        });

 

推荐阅读