【问题标题】:How to make a button click event to call dojo function?如何制作按钮点击事件来调用dojo函数?
【发布时间】:2014-04-29 11:42:48
【问题描述】:

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

我有两个现有的应用程序。

应用程序一使用了大量的 dojo/spring UI 装饰/验证(spring 3.1.1)。另一种是纯html应用程序。

我现在在做什么?我正在尝试通过使用来自 HTML 项目的 Jquery/Ajax 调用与我的 spring 项目对话来将两个项目放在一起,以获取从 JSP 生成的一些业务逻辑页面,并将 JSP 页面注入特定的 HTML 页面 div(内容 div)。我在这项工作上做了很多工作,我发现 Jquery 1.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()" />

但我发现,在道场中没有办法做到这一点。

我们将不胜感激任何建议。

来自澳大利亚的 Cidy

【问题讨论】:

    标签: javascript jquery spring function dojo


    【解决方案1】:

    你试过代替

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

    这将是道场等价物

    dojo.xhrPost({
        url:'doSignout',
        content: {key1:"value1",key2:{key3:"value2"}},
        load:function(data){
            if (data=="login required."){
                doAjax();
            }
        }
    });
    

    查看 dojo 文档中的以下链接:

    http://dojotoolkit.org/reference-guide/1.9/dojo/xhrPost.html#dojo-xhrpost

    http://dojotoolkit.org/reference-guide/1.9/dojo/xhrGet.html#dojo-xhrget

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

    http://dojotoolkit.org/documentation/tutorials/1.9/events/

    和dojo.connect:

    http://dojotoolkit.org/documentation/tutorials/1.6/events/

    您只需要“DOM 事件”部分

    【讨论】:

    • 这部分对我有用,我试过了。我的问题是我不能通过单击按钮来调用 dojo 函数来触发 dojo 函数,因为 Jquery 可以做到这一点。我的意思是似乎 dojo 函数不是监听 DOM 元素(按钮)单击事件。有什么想法吗?
    • 根据您使用的 dojo 版本,您可以尝试“dojo.connect”或“dojo/on”来监听 dom 事件。但这很奇怪,因为调用 doSignout() 函数的方式与浏览器默认的 jQuery 或 dojo 无关。除非您正在执行 jQuery.click 并且不显示它
    猜你喜欢
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多