2014-04-29 90 views
0

我有一些JavaScript需要從可愛的社區的一些幫助。我正在做關於Jquery和DOJO的一些事情。如何使按鈕點擊事件來調用dojo函數?

我有兩個現有的應用程序。

應用程序使用了大量的dojo/spring UI裝飾/驗證(spring 3.1.1)。另一個是純html應用程序。

我現在在做什麼?我試圖通過使用來自HTML項目談話的Jquery/Ajax調用來將兩個項目放在一起,以便從我的Spring項目中獲取從JSP生成的一些業務邏輯頁面,並將JSP頁面注入特定的HTML頁面div(Content div)。我在這項工作上做了很多工作,並且我發現Jquery 1.9.1在Ajax和JSP注入方面表現良好。但是當我嘗試調用我現有的JSP頁面的Spring/DOJO裝飾/驗證函數時,我發現Jquery和DOJO之間存在顯着的衝突,它們根本無法共存。

從那時起,我不得不放棄Jquery,因爲我大量使用Spring/DOJO。我發現在JavaScript函數調用中DOJO與Jquery不一樣。

例如,我可以很容易引發火災從按鈕的click事件的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來自澳大利亞

回答

0

你嘗試過的

$.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(); 
     } 
    } 
}); 

檢查從道場文檔以下鏈接:

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事件/上

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

和dojo.connect:

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

你只需要 「DOM事件」 部分

+0

這部分是爲我工作的, 我試過了。我的問題是我不能通過點擊一個按鈕來調用dojo函數來激發dojo函數,因爲jquery可以做到這一點。我的意思是似乎dojo功能是不聽一個DOM元素(按鈕)單擊事件。任何想法? –

+0

根據您使用的dojo版本,您可以嘗試使用「dojo.connect」或「dojo/on」來聆聽dom事件。但這很平常,因爲您調用doSignout()函數的方式與瀏覽器默認的jQuery或dojo無關。 unles你正在做一個jQuery.click並沒有顯示它 –