2012-02-02 44 views
0

原谅我的无知,因为我不熟悉jquery。有没有相当于dojo.subscribe()?jquery是否有相当于dojo.subscribe()?

你知道jquery的解决方案吗?有jquery.connect,但是这个插件在我的测试中不起作用。

+1

这是什么订阅呢? – gdoron 2012-02-02 20:02:31

+1

找到了一些关于它的内容:http://livedocs.dojotoolkit.org/dojo/subscribe – j08691 2012-02-02 20:08:23

+0

我正在使用Spring-js和JQuery进行插件工作。 Spring-js使用Dojo来解析所有Ajax通信,因此我试图将Spring-Dojo.js转换为Spring-Jquery.js,这里是JS文件:http://www.koders.com/javascript/fid2238090329B931C75C62EA4108142E5019C4D837。 ASPX?S =窗口#L261。此刻我不知道如何转换dojo.subscribe(this.elementId +“/ validation”,this,“_handleValidation”);在143线。 – masch 2012-02-02 20:14:38

回答

1

来自j08691's link中的订阅说明的最佳猜测:bindtrigger。这些允许您在DOM节点上定义任意命名的事件,然后使用参数调用它们。

听起来像dojo.subscribe在全局范围内执行此文档;你也许可以通过将事件绑定到文档对象本身来达到同样的效果,但是我怀疑你正在做什么,将事件绑定到页面上的DOM节点是有意义的。

例如您的示例脚本包含

this.validationSubscription 
    = dojo.subscribe(this.elementId+"/validation", this, "_handleValidation"); 

你可以代替

var _this = this; 
$(element).bind("validation", 
    function(event, flag) { _this._handleValidation(flag)); } 
    ); 

再后来

$(element).trigger("validation", false); 
+0

谢谢!但是,再次抱歉,我怎么能转换下一行? this.connection = dojo.connect(element,this.event,this,“submit”); – masch 2012-02-02 21:14:58

+0

好吧,我真的不知道dojo连接做什么,但[从这个猜测](http://dojotoolkit.org/reference-guide/dojo/connect.html)它是关于绑定函数到DOM节点上的事件?在这种情况下,再次使用绑定,或者使用特定的绑定助手之一,例如[submit](http://api.jquery.com/submit/) - 只需传递事件的名称和要执行的函数。 jQuery将按顺序触发所有绑定事件,除非它们中的一个指示事件停止传播,或者返回false;它会停止传播(并禁用默认事件行为) – Rup 2012-02-03 11:19:18

相关问题