Javascript 如何使按钮单击事件调用dojo函数?

Javascript 如何使按钮单击事件调用dojo函数?,javascript,jquery,spring,function,dojo,Javascript,Jquery,Spring,Function,Dojo,我有一些javascript需要可爱社区的帮助。我正在做一些关于Jquery和DOJO的事情 我有两个现有的应用程序 ApplicationOne使用了大量dojo/SpringUI装饰/验证(Spring3.1.1)。另一个是纯html应用程序 我现在在做什么?我试图通过使用Jquery/Ajax调用将两个项目放在一起,从HTML项目talk调用我的spring项目,以获得从JSP生成的一些业务逻辑页面,并将JSP页面注入特定的HTML页面div(Content div)。我在这方面做了很多工

我有一些javascript需要可爱社区的帮助。我正在做一些关于Jquery和DOJO的事情

我有两个现有的应用程序

ApplicationOne使用了大量dojo/SpringUI装饰/验证(Spring3.1.1)。另一个是纯html应用程序

我现在在做什么?我试图通过使用Jquery/Ajax调用将两个项目放在一起,从HTML项目talk调用我的spring项目,以获得从JSP生成的一些业务逻辑页面,并将JSP页面注入特定的HTML页面div(Content div)。我在这方面做了很多工作,我发现jQuery1.9.1在Ajax和JSP注入方面做得很好。但当我尝试调用现有JSP页面的Spring/DOJO装饰/验证函数时,我发现Jquery和DOJO之间存在严重冲突,它们根本无法共存

从那时起,我不得不放弃Jquery,因为我大量使用了Spring/DOJO。我发现DOJO和javascript函数调用中的Jquery不一样

例如,我可以很容易地从按钮单击事件触发Jquery函数,如下所示:

javascript作为:

function doSignout() {
console.log("dosignout function called.");
$.ajax({
    contentType: "application/json; charset=utf-8",
    url: 'doSignout',
    query: ({name : "me"}),
       success: function(data){
          if (data=="login required."){
            doAjax();
           }
       }
     });
}
HTML格式为:

<input value="Sign out" name="Sign out" id="Sign out" class="submit" type="submit" onClick="doSignout()" />

但我发现,在dojo中没有同样的方法

如有任何建议,将不胜感激


来自澳大利亚的Cidy

你试过代替

$.ajax({
    contentType: "application/json; charset=utf-8",
    url: 'doSignout',
    query: ({name : "me"}),
       success: function(data){
          if (data=="login required."){
            doAjax();
         }
       }
});
这将是dojo的等价物

dojo.xhrPost({
    url:'doSignout',
    content: {key1:"value1",key2:{key3:"value2"}},
    load:function(data){
        if (data=="login required."){
            doAjax();
        }
    }
});
检查dojo文档中的以下链接:

使用dojo/on侦听事件的教程

和dojo.connect:


您只需要“DOM事件”部分

这部分对我有用,我试过了。我的问题是,我不能像Jquery那样通过单击按钮来调用dojo函数。我的意思是dojo函数似乎不是侦听DOM元素(按钮)单击事件。知道吗?根据您使用的dojo版本,您可以尝试使用“dojo.connect”或“dojo/on”来侦听dom事件。但这是一个障碍,因为调用doSignout()函数的方式与浏览器默认的jQuery或dojo都不相关。除非您正在执行jQuery。单击并不显示它