我认为函数/方法不应该返回void,而应该返回this
。这就是我惊讶地发现这不起作用的原因:
$('buttonContainer').getElement('input').set('value', this.get('value') + ' ');
代码的作用是找到一个<input>
,它是id
属性值为buttonContainer
的元素的子元素,并为其{{1}添加两个空格字符属性。上面的代码错误,但我不得不写:
value
MooTools是否有办法将这两个单独的语句链接成一个?类似于我的第一个片段?
答案 0 :(得分:3)
对于每个调用的方法,MooTools都无法动态重新绑定this
。这是不可能的。
您必须了解对您的链的每次调用都在同一范围内,因此this
保持不变。 jQuery和每个其他框架都有同样的问题。如果要同时对元素执行两个操作,则必须将对象存储在变量中,然后使用该变量引用该对象,就像在第二个示例中一样:
var input = $('buttonContainer').getElement('input');
input.set('value', input.get('value') + ' ');
this
只能在范围发生变化时更改(在JavaScript中总是在您点击括号{}
的函数时更改)。这不是MooTools链接的限制。这就是JavaScript的一般工作方式。
答案 1 :(得分:1)
你所要求的与链接无关。 this
没有上下文,因此您的通话失败。您不满意的解决方案是您需要为其他值/属性编写它的方式,但对于这样的直接更改,请按以下方式编写:
$('buttonContainer').getElement('input').value += ' ';