【问题标题】:How to pass Object as a parameter in Javascript如何在Javascript中将对象作为参数传递
【发布时间】:2013-04-09 13:53:13
【问题描述】:

我想在函数中传递对象。这是我的代码

var hyperLinkObj = new Object();
hyperLinkObj.path="abc";
hyperLinkObj.text="abctext";

'<li><a href="#" onclick="onItemClick(hyperLinkObj)">'+description+'</a></li>'

在这里我正在创建名为“hyperLinkObj”的对象现在我正在创建“li”标签并将超链接放入 li 现在当我检查时我得到类似

'<li><a href="#" onclick="onItemClick([object Object])">'+description+'</a></li>'

那么我怎样才能传递 hyperLinkObject ,就像在 onItemClick 中一样,我在这个 Object 上做了很多事情。

看看其实我想做这样的事情。

1] 有一个 Object 有很多 Category 所以想循环一下。 2] 然后在每个类别项目上单击想要使用 hyperLinkObj 调用 OnItemClcik 3] 然后点击 Hyperlink ,想要执行获取 Hyperlink.path 之类的操作并显示面包屑。 4] 最后我使用的是 Extjs 所以Ext.Panel.update("李文");

可能我没有提到 ExtJs.update.. 它没有按照你的建议工作..

你能解释一下我怎样才能做到这一点吗?

【问题讨论】:

  • 与单击的列表项相关的对象应该引用什么?
  • var hyperLinkObj = { path: "abc", text: "abctext" }; 对象的首选语法。
  • hyperLinkObj 是在哪里创建的?全球范围?你能在 onItemClick 函数中展示你打算如何使用它吗?

标签: javascript html extjs4.1


【解决方案1】:

将hyperLinkObj放在全局范围内,在onclick中引用。

hyperLinkObj = new Object();
hyperLinkObj.path="abc";
hyperLinkObj.text="abctext";
Ext.Panel.update('<li><a href="#" onclick=\'onItemClick({path:"'+hyperLinkObj.path+'",text:"'+hyperLinkObj.text+'"})\'>'+description+'</a></li>')

[object Object] 是Object() 的toString(),不包含详细信息。

【讨论】:

  • 我不能使用全局对象,因为它会在循环中。我已经解释了上面的场景
【解决方案2】:

为复杂的点击功能使用绑定事件:

document.getElementById('anchorID').onclick=function(){/* some code */}

这对你来说会更容易。 看看这个小提琴: http://jsfiddle.net/anurag/amedr/

【讨论】:

  • 不知道:/但如果您认为这是一个好的答案,请投票。
  • 嗯...我不会为了取消他们的投票而投票。不过,我也不认为您的答案很好,因为它在某种意义上还不够完整,无法供张贴者使用,我只支持好的完整答案。我主要只是想知道为什么反对者认为它不好,因为你的答案背后的想法是正确的。
猜你喜欢
  • 2017-05-20
  • 1970-01-01
  • 2012-11-25
  • 2018-02-23
  • 2012-05-30
  • 2016-04-02
  • 2011-03-09
  • 2019-10-19
  • 2021-04-15
相关资源
最近更新 更多