Надо проделать на странице кое какие действия в зависимости от выбранного значения в Hierarchical select поле.
Пишу, что-то вроде:
$("#edit-tid-category-hierarchical-select-selects-0").change( function(){
alert($("#edit-tid-category-hierarchical-select-selects-0 option:selected").val());
})
});
На свежезагруженной странице все проходит на ура. При изменении пункта в селекте функция срабатывает. А вот при дальнейших изменениях не хочет, хотя на простом селекте все в порядке. Понятно, что в самом Hierarchical select назначаются свои обработчики события, они и перекрывают мой.
Не силен в jQuery. Подскажет кто-нибудь, что делать? Чтобы и моя функция отрабатываля и функции модуля не тронуть.
UPD: Всем спасибо за наводку.
Проблему решил так:
$('#edit-tid-category-hierarchical-select-selects-0', context).change(function () {
alert($("#edit-tid-category-hierarchical-select-selects-0 option:selected").val());
});
};
Справка - http://drupal.org/node/304258
Комментарии
Через behavior свой js делаешь? или просто document.ready ?
Через document.ready
почитайте что такое drupal behaviors в JS и для чего оно нужно
Thanks. Пока с этим не сталкивался. Уже гуглю...
если мне память не изменяет, то там больше проблема с JS HS'а
Во-первых, убедитесь, что вставляете через behavior
Во-вторых, у HS есть куча своих событий, которые можно (нужно ?) использовать.
В третьих указывать версию друпала нада
Указал. D6.
Для ТС:
behaviors -- это список событий (функций), которые будут вызваны при загрузке страницы.
Если повесить на document.ready что-то свое, то затрете бихевиры.
Нужно определить свой и приаттачить его к behaviors.
Не совсем так. При загрузке новых элементов (а при обновлении HS происходит именно это) ваш скрипт не подключается к ним, потому что document.ready событие не происходит. При использовании behaviors Друпал их сам переподключает
В общем-то, мне нужен только первый селект из набора, тот самый, что и грузится в странице.
Всем спасибо за наводку. Проблему решил так:
$('#edit-tid-category-hierarchical-select-selects-0', context).change(function () {
alert($("#edit-tid-category-hierarchical-select-selects-0 option:selected").val());
});
};
Справка - http://drupal.org/node/304258