Dojo:如何访问&x27;这';从一个街区里面?
如果我是从onclick事件调用函数,我通常会使用Dojo:如何访问&x27;这';从一个街区里面?,dojo,Dojo,如果我是从onclick事件调用函数,我通常会使用this来访问触发事件的元素。但是如果我使用的是dojo require,那么这个在require中是不可访问的 HTML: 如何访问require中的此?有几种方法可以解决您的问题。最常见的解决方案是只对脚本块使用一个require,并在require回调中包含所有定义 require(['dojo/on','dojo/dom','dojo/dom-class'],function(on,dom,domClass){ var butto
this
来访问触发事件的元素。但是如果我使用的是dojo require,那么这个在require中是不可访问的
HTML:
如何访问require中的此?有几种方法可以解决您的问题。最常见的解决方案是只对脚本块使用一个require,并在require回调中包含所有定义
require(['dojo/on','dojo/dom','dojo/dom-class'],function(on,dom,domClass){
var button = dom.byId ("someButton");
on (button, "click", doSomething);
function doSomething (event) {
console.log (this.id); // someButton
console.log (this.id);
domClass.add (this, "clicked");
});
});
另一个要考虑的是dojo/on模块将一个标准化的事件对象传递给事件处理程序。因此,在本例中,
doSomething()
将传递一个事件
对象,您可以从中获取实际单击的dom元素。有几种方法可以解决您的问题。最常见的解决方案是只对脚本块使用一个require,并在require回调中包含所有定义
require(['dojo/on','dojo/dom','dojo/dom-class'],function(on,dom,domClass){
var button = dom.byId ("someButton");
on (button, "click", doSomething);
function doSomething (event) {
console.log (this.id); // someButton
console.log (this.id);
domClass.add (this, "clicked");
});
});
require (["dojo/dom-class"], dojo.hitch(this,function (domClass) {
console.log (this.id); // undefined
domClass.add (this, "clicked");
}));
另一个要考虑的是dojo/on模块将一个标准化的事件对象传递给事件处理程序。因此在本例中,
doSomething()
将被传递一个事件
对象,您可以从中获取实际单击的dom元素
require (["dojo/dom-class"], dojo.hitch(this,function (domClass) {
console.log (this.id); // undefined
domClass.add (this, "clicked");
}));
require中的函数是回调函数,因此它的作用域是窗口。当它返回时,您可以使用bind或dojo.hitch来更改作用域
require中的函数是回调函数,因此它的作用域是窗口。当它返回时,您可以使用bind或dojo.hitch来更改作用域。谢谢,这非常有效。如果我像这样在require块中定义了一个函数,我能从require块之外访问它吗?比如在另一个javascript文件中?谢谢,这非常有效。如果我在这样一个require块中定义了一个函数,我能从require块之外访问它吗?比如在另一个javascript文件中?