【发布时间】:2011-07-28 18:04:37
【问题描述】:
我有两个 JQuery 小部件,一个是一种“主”小部件,另一个可以视为子小部件。孩子负责收集主要所需的特定数据。 main 用于 AJAX 请求。因此,main 有一组发送到服务器的选项。其中一个选项也是子选项中的一个选项。
为了更清楚地说明这一点,我有一个主小部件,它有几个选项。然后它创建并附加一个子小部件。这个子小部件有一个附加选项,在发送 AJAX 请求之前需要在主小部件中填写该选项。为了使这项工作,我传递给孩子:this.options.someArray
这很好用,但是当子小部件中的该数组发生更改时,它们永远不会返回到主小部件。这意味着 AJAX 请求在此位置发送一个空数组。我该如何解决这个问题?
[如果这不是标准行为 - 我可以发布代码示例]
主 Widget 的代码示例:
$.widget('be.deckEditor', {
options: {
deck: { name: "", id: 0, cards: [], tags: [] }
},
创建子Widget的代码:
tagEditBox = $('<div>');
tagEditBox.tagEditor({tags:this.options.deck.tags});
小部件_初始化代码:
_init: function () {
this.options.tags = ['ace','two'];
},
【问题讨论】:
-
您应该发布代码,因为对数组的共享引用是对数组的共享引用 :-) 如果引用似乎没有被共享,那么您的代码中的某些东西正在做某事就像制作数组的副本; JavaScript 自己不会这样做。
-
包括应该是相关位的内容。
标签: javascript jquery parameter-passing widget