dojo eventListener через dojo.connect прикрепить к нескольким объектам с одинаковым идентификатором - PullRequest
0 голосов
/ 05 февраля 2011

, поэтому я пытаюсь прикрепить событие onclick к набору ссылок с одним и тем же идентификатором ("linkToDisplay"), и, похоже, мой код события onclick не запускается следующим образом:

var handle = [];
var link = dojo.query('#linkToDisplay a').forEach(function(node, index, array){

                                                    handle.push(dojo.connect(node,
                                                                            "onclick",
                                                                            null,
                                                                            function(evt) {
                                                                                console.log("mouseup detected, firring off server request");
                                                                                dojo.xhrGet({url:'default/data/getPageContent?main=true&pageId='+evt.target.name,
                                                                                             load: funcCallBack,
                                                                                             error: funcError});
                                                                                }
                                                                              ));

                                                    });

funcError и funcCallBack определены и работают (если я передаю только один объект, извлеченный dojo.getId, но в противном случае мой скрипт завершается с ошибкой).

Я помещаю этот код в блок кода dojo.addOnLoad, и я не вижу никаких событий, запускаемых при щелчке в любом месте страницы, поэтому я почти уверен, что проблема не связана с подключением слушателя событий к неправильный кусок DOM.

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Попробуйте это:

var k=dojo.byId("linkToDisplay");
dojo.connect(k,'onclick',this,'yourfunction')
1 голос
/ 05 февраля 2011

, поэтому кажется, что dojo применяет схему, в которой идентификаторы уникальны, поэтому, если один элемент DOM имеет идентификатор, совпадающий с другим, конечный результат заключается в том, что метод запроса возвращает только первое.

Вот пример того, с чем я закончил:

dojo.query(".links a").onclick(function(evt){
                                    dojo.stopEvent(evt);
                                    var link = evt.target;
                                    onSubmit(link)
                                }
                        );

.links указывает class = "links", а затем я сортирую любые якорные объекты, добавляя 'a 'after, и я использую вспомогательную функцию для события onclick, беру цель и передаю ее функции onSubmit (которая содержит некоторую проверку и запрос xhr.).

...