Метод .get mootools не работает в Joomla 1.5 - PullRequest
1 голос
/ 24 июля 2011

У меня проблема в Joomla 1.5.18.я пытаюсь получить текст из элемента, используя, например,

var divContent = $$('#myDiv').get('text');

, но каждый раз, когда я получаю сообщение об ошибке, в chrome: Uncaught TypeError: Object # <HTMLDivElement> не имеет метода get;в Firefox: divContent.get не является функцией.почему я получаю эту ошибку?

Ответы [ 3 ]

1 голос
/ 01 августа 2011

даже после сэмплов в mootools я получаю то же самое.

я знаю, как это сделать для каждого объекта в коллекции. я получил $$ ('.') и использовал метод "each":

$$('p.classname').each(function (el){
      el.addEvent('click', function() {
          var txt = el.get('text');
          ...
      });
});

и, очевидно, я добавляю функцию на domready. я не использую jquery, потому что mootools & jquery останавливает события каждое ... - я пробовал один раз, и то, что мне было нужно, не работало - и я хочу использовать все ресурсы joomla, включая mootools.

проверка версии в mootools.js: 1.13 (?)

0 голосов
/ 04 августа 2011

Вы также можете (и должны) обновить Joomla до последней версии (исправления безопасности и т. Д.), И я полагаю, что это была версия 1.5.20, они включали более новую версию mootools прямо из коробки (также естьплагин для обновления mootools вы можете включить).Я считаю, что версия, включенная в 1.5.20, похожа на 1.2.5 или что-то в этом роде ...

Это может помочь!

0 голосов
/ 25 июля 2011

не уверен, какая версия mootools входит в joomla 1.5.18, это может быть 1.2.5.если это так, .get должен работать, но не так, как вы ожидаете.

Вы, вероятно, пользователь jquery, привыкший к $("#myid") и обнаруживающий, что единственный способ получить аналогичные результаты с # там вmootools через document.getElements, иначе, $$.

проблема в том, чтобы получить один элемент по идентификатору в mootools, вы фактически делаете document.id("mydiv") или даже $("mydiv").$$("#mydiv") на самом деле возвратит COLLECTION элементов с одним членом, поэтому [obj], поэтому реальный элемент - $$("#mydiv")[0].

Если вы примените метод .get к КОЛЛЕКЦИИ, получатель обычно выполняет итерации по всем элементам через .each и выполняет получение по отдельности.он вернет новый элемент массива для каждого члена коллекции - т.е. ["innertext"]; - хотя должен быть метод для коллекции, убедитесь, что элемент есть, он находится в domready / onload и является уникальнымid.

Тем не менее, я бы переключился на использование $("mydiv").get("text"), все должно быть хорошо.По моему опыту, это слишком распространенное предположение пользователей jquery, которые не читают руководство.Это приводит к плохому и неработающему коду из-за всех итераций, которые mootools .each должен выполнить, чтобы работать с коллекцией за вас.Просто говорю.

...