标签: dojo

如果没有在dojo.connect期间返回的"句柄",如何删除dojo连接事件?

如果没有在dojo.connect期间返回的"句柄",如何删除dojo连接事件?

我的例子涉及动态地将一组事件分配给一组对象.(为简单起见,事件是onclick和ondblclick,对象是表中的行)

因此,在页面设置期间,事件连接到每一行(onclick,ondblclick).现在,根据用户的期望/动作,需要从一行中删除一个事件.但原来的手柄已不再可用.因此,以下内容不起作用: dojo.disconnect(row, "onclick", ??*).如何在不破坏原始行结构的情况下解决这个问题?

任何帮助当然非常感谢.

dojo event-handling disconnect

13
推荐指数
3
解决办法
1万
查看次数

与jQuery .live()等效的Dojo是什么?

与jQuery .live()等效的Dojo是什么?
http://api.jquery.com/live/

我找到的唯一解决方案是dojo.disconnect事件处理程序,并在向页面添加动态标记后重新连接它们.

javascript jquery events dojo live

13
推荐指数
1
解决办法
3075
查看次数

决定之间:使用Rails 3.1 app的dojo,backbone.js,knockout.js(或其他)

我们有一个现有的Rails 3.1面向消费者的Web应用程序,并且正在重新设计UI,使其更具交互性,活泼,类似应用程序.

我们有一个适度复杂的数据模型,但对基于表单的用户输入只有适度的需求.

我们现在使用jQuery,使用插件来做很好的效果,但总的来说,我们的JS技能很弱.

我们的主要目标是找到一个框架,帮助我们构建和组织JS代码,并简化我们在Rails 3.1世界中拥有数据绑定,AJAX等的情况.

我们将学习如何正确地学习JS,但是当我们这样做时,是否有一个我们可以学习并在其中工作的清晰框架?

javascript dojo backbone.js ruby-on-rails-3.1 knockout.js

13
推荐指数
1
解决办法
1万
查看次数

Dojo AMD:无法调用require中的函数

我真的是dojo的新手但是当我开始使用dojo版本1.7.2开发新的应用程序时,我也想使用新的AMD语法来实现功能.不幸的是我似乎没有得到它.:-(

让我最烦的是我不能简单地调用任何"require"-block中的函数.例如,我有一个页面,在开始时创建一个动态表,每行有几个小部件.然后我有一个按钮,每按一次就会添加一个空行.

没有AMD语法就很容易:
- 把我所有的"dojo.require()"放在HEAD中
- 然后创建一堆我自己的函数来创建表和小部件
- 添加行函数可以轻松访问任何全局变量我以前的功能填写了

但对于AMD来说,它是这样的:

初始函数创建表和小部件:

function fillReportTable(repId) {
require(["dojo/dom-construct", "dojo/dom-attr", "dijit/form/FilteringSelect",
"dojo/data/ItemFileReadStore", "dijit/form/ComboBox", "dijit/form/DateTextBox", "dijit/form/Select", "dojo/store/Memory"],
     function (domConstruct, domAttr, FilteringSelect, ItemFileReadStore, ComboBox, DateTextBox, Select, Memory) {
   // a lot of code to create the table, consisting of SEVERAL functions 
   function createNewRow(tbl) { ...} 
   function function1 () {... } 
   function function2 () {... } 
   function function3 () {... } 
}
Run Code Online (Sandbox Code Playgroud)

现在,"添加空行"按钮调用自己的函数"addEmptyRow".
但是在这个函数中我必须:
- 再次为每个dojo模块做一个其他的需求
- 我不能使用任何"fillReportTable"函数"内部"的函数.例如"createNewRow"函数

 function addEmptyRow() {
require(["dojo/dom-construct", "dojo/dom-attr", "dijit/form/FilteringSelect",
"dojo/data/ItemFileReadStore", "dijit/form/ComboBox", "dijit/form/DateTextBox", …
Run Code Online (Sandbox Code Playgroud)

dojo amd javascript-framework

13
推荐指数
1
解决办法
9346
查看次数

Dojo Toolkit:如何转义HTML字符串?

我的HTML 5应用程序的用户可以在表单中输入他的名字,此名称将显示在其他地方.更具体地说,它将成为innerHTML一些HTML元素.

问题是,如果您在表单中输入有效的HTML标记,即可以使用某种HTML注入,则可以利用此功能.

用户名只存储并显示在客户端,因此最终用户自己是唯一受影响的人,但它仍然很草率.

在将它innerHTML放入Dojo 中的元素之前,有没有办法逃避字符串?我猜Dojo在某一点确实有这样的函数(dojo.string.escape())但它在版本1.7中不存在.

谢谢.

javascript dojo escaping innerhtml

13
推荐指数
2
解决办法
7411
查看次数

data-dojo-type和dojotype有什么区别?

dojo文档中提到了两种类型声明.他们是data-dojo-typedojotype.

例如,

dojoType="dojox.grid.DataGrid"

data-dojo-type="dojox.grid.DataGrid"
Run Code Online (Sandbox Code Playgroud)

两者在所有主流浏览器中都运行良好.但我不明白,data-dojo-type和dojotype有什么区别?

我应该在哪里使用dojoType?我应该在哪里使用data-dojo-type

dojo

12
推荐指数
1
解决办法
6223
查看次数

如何在"onclick"事件期间加载外部Javascript文件?

我的HTML中有2个div.

<div id="div1"></div>
<div id="div2"></div>
Run Code Online (Sandbox Code Playgroud)

点击"div2"我想加载外部javascript文件,例如" https://abcapis.com/sample.js ".

我尝试在下面的onclick事件中包含JS文件,

var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://abcapis.com/sample.js"; 
document.getElementsByTagName("head")[0].appendChild(script);
Run Code Online (Sandbox Code Playgroud)

这包括head部分中的脚本标记,但由于脚本标记仅在页面加载时加载,因此未加载(如果我错了,请在此处更正).

还有其他方法可以继续吗?

提前致谢.

html javascript jquery dojo jsp

12
推荐指数
3
解决办法
4万
查看次数

如何在没有iFrame的情况下在另一个页面内显示外部网站?

我需要在没有iFrame的情况下在我的应用程序中打开外部网站,我还需要将一些标题值传递给该外部网站.

帮我..

html jquery dojo web

12
推荐指数
2
解决办法
4万
查看次数

Dojo addOnLoad,但是Dojo加载了吗?

我遇到了似乎鸡和蛋的问题,并且我认为这是一个合乎逻辑的解决方案.然而,在我看来,其他人肯定遇到过类似的东西,所以我想我会把它漂到那里为群众.

情况是我想使用dojo的addOnLoad函数来排队一些回调,这些回调应该在DOM完成客户端渲染之后执行.所以我正在做的如下:

<html>
    <head>
        <script type="text/javascript" src="dojo.xd.js"></script>
        ...
    </head>
    <body>
        ...
        <script type="text/javascript">
            dojo.addOnLoad( ... );
            dojo.addOnLoad( ... );
            ...
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

现在,问题是我似乎在整个Dojo库下载浏览器之前调用了dojo.addOnLoad.这在某种程度上是有道理的,因为内联SCRIPT内容应该在加载整个DOM 之前执行(并且触发正常的主体onload回调).

我的问题是 - 这是我的方法声音,或者更有意义的是注册普通/标准正文onload JavaScript回调来调用一个函数,它执行与每个dojo.addOnLoads在SCRIPT块中所做的相同的工作.当然,这就引出了一个问题,如果您不能保证在使用库之前加载Dojo库,为什么还要使用dojo.addOnLoad呢?

希望这种情况对我以外的人有意义.好像其他人可能遇到过这种情况.

思考?

最诚挚的问候,Adam Rice

dojo dom onload

11
推荐指数
1
解决办法
1万
查看次数

dojo中的registry.byId和dom.byId之间的区别?使用registry.byId有什么好处?

registry.byIddom.byIddojo有什么区别?使用有什么好处registry.byId

在下面的代码我使用的是dijit/registrydojo/dom两个文本框我的(#myTextBox3)和我的文本节点(#textNode3).其中只有两个提供了结果.

require(["dojo/parser", "dojo/dom", "dijit/registry", "dijit/form/TextBox", "dojo/domReady!"],
    function(parser, dom, registry) {

    parser.parse();

    // Locate the JS object.
    var dibiWidget = registry.byId("myTextBox3");
    var dobiWidget = dom.byId("myTextBox3");
    var dibiDOM = registry.byId("textNode3");
    var dobiDOM = dom.byId("textNode3");


    dom.byId("textNode3").innerHTML = "registry.byId for widget id returned: " + dibiWidget + "<br>" +
        "dom.byId for widget id returned: " + dobiWidget + "<br>" +
        "registry.byId for dom id returned: " + dibiDOM + "<br>" …
Run Code Online (Sandbox Code Playgroud)

dojo

11
推荐指数
2
解决办法
5516
查看次数