HTML5标签点击事件方法:无法传递对象类型参数
2017-05-23 10:35
363 查看
如下为onclick 事件,点击触发startTask 方法,其中有两个参数,task 和 type,如果我这里的task是对象类型的,会导致startTask(task,type)方法接收到的task为[object Object],不能拿到数据。
用拼接字符串的方式构建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对象。
结论: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对象。
相关文章推荐
- 在js循环中如何给a标签的点击事件的方法参数赋值有效
- Button点击事件绑定中如何传递带参数的方法
- 在workflow中,无法为实例 ID“...”传递接口类型“...”上的事件“...” 问题的解决方法。
- 在workflow中,无法为实例 ID“...”传递接口类型“...”上的事件“...” 问题的解决方法。
- Delphi动态事件深入分析(对象方法在调用的时候会传递一个隐含的Self指针,而该指针的值在EAX中。即左边第一个参数)
- 在workflow中,无法为实例 ID“...”传递接口类型“...”上的事件“...” 问题的解决方法。
- react.js 点击事件传递参数的方法
- 对Android为intent提供两种传递对象参数类型的方法的个人简单理解
- WCF实体对象客户端引用时生成多余参数"××Specified",且值类型数据赋值无法传递值时必须付××Specified=true
- C++学习笔记(6)——多重继承类对象的构造函数参数的传递方法
- SQL中函数返回表,传递一个参数,无法唤醒用户自定义函数,解决方法!
- 出现无法将System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.DropDownList的解决方法
- 在Java中方法参数的传递,对象是传递引用
- 如果java中一个方法不知道要传递多少参数也不知道传递过来的是什么类型的数据你会怎么做?
- [转载]AS3)Flash(非Flex)开发中通过事件传递参数的一种方法
- Struts2 树形标签添加点击事件和取得ID的方法
- C#.NET学习笔记---C#中方法参数的传递方式: 值类型(默认),ref类型,out类型和params类型
- 无法将类型为“IList”的对象强制转换为类型“System.Data.DataRowView” 。的解决方法
- 传递类型为参数的方法
- 无法将类型为“IList”的对象强制转换为类型“System.Data.DataRowView” 。的解决方法