Как сделать событие нажатия кнопки для вызова функции dojo?

0

У меня есть некоторый javascript, который нуждается в помощи от прекрасного сообщества. Я делаю кое-что о JQuery и DOJO.

У меня есть два существующих приложения.

В приложении используется много украшений/проверки пользовательского интерфейса dojo/spring (весна 3.1.1). И другое - это чисто приложение html.

Что я сейчас делаю? Я пытаюсь объединить два проекта, используя вызов Jquery/Ajax из проекта HTML-проекта в мой проект Spring, чтобы получить страницу бизнес-логики, созданную из JSP, и вставить страницу JSP в конкретную страницу HTML-страницы (Content div). Я много работал над этой работой, и я обнаружил, что JQuery 1.9.1 преуспевает в Ajax и JSP-инъекции. Но когда я пытаюсь назвать существующую функцию JSP/Spring/DOJO для украшения/проверки, я обнаружил, что между JQuery и DOJO существует значительный конфликт, они не могут жить вместе вообще.

И с этого момента мне пришлось отказаться от JQuery, поскольку я сильно использовал Spring/DOJO. Я обнаружил, что DOJO не совпадает с JQuery в вызове функции javascript.

Например, я могу очень легко запустить функцию 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 из Австралии

Теги:
spring
function
dojo

1 ответ

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

проверьте следующие ссылки из документации 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 Events"

  • 0
    Эта часть работает на меня, я пытался. Моя проблема в том, что я не могу вызвать функцию dojo, нажав кнопку, чтобы запустить функцию dojo, как это делает Jquery. Я имею в виду, кажется, функция dojo не слушает событие нажатия элемента DOM (кнопки). Любая идея?
  • 0
    в зависимости от того, какую версию dojo вы используете, вы можете попробовать dojo.connect или dojo / on для прослушивания событий dom. но это очень странно, потому что способ вызова функции doSignout () не связан ни с jQuery, ни с dojo, который является браузером по умолчанию. разве вы делаете jQuery.click и не показываете его

Ещё вопросы

Сообщество Overcoder
Наверх
Меню