HTML5标签点击事件方法:无法传递对象类型参数

来源:互联网 发布:软件平台用户手册模板 编辑:程序博客网 时间:2024/06/11 11:46

如下为onclick 事件,点击触发startTask 方法,其中有两个参数,task 和 type,如果我这里的task是对象类型的,会导致startTask(task,type)方法接收到的task为[object Object],不能拿到数据。

结论:HTML5标签点击事件方法之无法传递对象类型参数

"<div class='task_item box_vertical_center' onclick='startTask(\"" + task + "\" ,\""+ type + "\")'>" 

我这里需要实现的需求

现在有很多任务,点击某个任务执行某个任务数据,类似iOS中TableView数据源

解决处理

将数据源作为全局数组处理,然后在HTML标签传递 i 任务在数组数据源中的位置,在startTask(i,type)方法中根据 i 取对应的任务做出相应处理。

用拼接字符串的方式构建html,只能拼接字符串,对象是没办法拼接的。
如果row是数字或字符串,则拼接结果为
lookCard(1) 或 lookCard(a)
如果row是对象,则拼接结果为
lookCard([object Object])
这里[object Object]会引起 Uncaught SyntaxError: Unexpected identifier
ps:上面的lookCard(a)也会引起错误,正确方法还要给字符串类型添加引号,即lookCard(“a”)
解决方法:
(1)将row转换成json,拼接进去,后面在函数里面再转换回来。
(2)拆开row,把row的多个属性逐一作为参数传递给函数。
(3)保存row为全局,传递row的凭证给函数,函数拿着凭证去全局取row对象。