Уважаемые коллеги, может кто поможет.
Drupal 6. В коде ноды есть форма.
Хочу назначить элементу формы обработчик (клик).
Включаю указанный код в page.tpl.php
<script type="text/javascript">
$("#edit-submitted-ML-requirement").bind('click', function() {alert('CLICK');});
</script>
Однако, ничего не происходит.
Может кто незамыленным взглядом скажет что тут.
Спасибо.
Комментарии
Советую использовать .livequery или обновить jquery на drupal-е и использовать .live
Тоже самое что и бинд(с оговорками, читай документацию) и работает по сговорчивей.
.live насколько я знаю только с 1.7 версии... кстати тогда и .on можно использовать.
Вопрос с обратной совместимостью. У меня куча модулей стоит использующих jquery. Страшно честно говоря менять.
Кстати, а что значит
допер что такое .livequery
Плагин. Сейчас прикручу и попробую.
$(/**/).click(function(){/**/}) было же?
вообще с 1.3.
По умолчанию в друпале 1.2.6
Можно обновится до 1.3 спокойно.
Вещается обработчик только на первый селектор. А надо на все.
у меня jquery update стоит.. соотвественно 1.3
а обработчик разве не через
$(document).ready(function(){
надо вешать?Блин я все это уже проходил =((( И без bind пробовал - сразу click и через $(document).ready(function(){ пробовал. А вот никак. Попробую вечерком через .livequery. Но что-то я делаю не то
Если это submit-кнопка, может быть вы не успеваете увидеть ваше событие, т.к. форма отправляется. Если submit - перекройте событие по умолчанию
$("#edit-submitted-ML-requirement").live('click', function(e) {
e.preventDefault();
alert('CLICK');
});
});
В том то и дело что нет. Это произвольный элемент webform. НЕ submit.
Если стоит 1.3. Значит есть live. Не нужен livequery. livequery включили в jquery-core 1.3.
И назвали .live()
Отлично. Сейчас попробую - доложу о результатах
iHappy, благодарю вас!
с .live все работает!!!!
не совсем так. вешается на все селекторы по шаблону
Поподробней.
по подробней, если на селектор $('.chpook') вешаешь кликовый контекст, то у тебя может быть великое множество элементов с этим классом и клик на каждом отработает алерт.
пример:
$('.chpook').click(function(){
alert('Alarma! La bomba');
});
});
<span class="chpook">qweqw</span>
<img class="chpook" />
<body class="chpook">
...
Чпукнет каждый и не по разу. Зачем тут бинды не совсем ясно
хм, про это не знал)
Надо будет проверить.
Но в данном случае, это не тот случай) Тут надо бинд или лайв.
зависит от того, как написано остальное и какие задачи это должно выполнять. кроме алерта в примере ТС задача вообще не ясна.
Ну да.
для справки. Это форма. Webform + conditional. Задача стоит пересчитать цену услуги в завивисимости от выбранных полей. Потому и вешал обработчик. Висеть будет на change и ajax запрос к серверу для изменения и отображения цены.
кейап -> проверка заполенения -> запуск пересчета
можно и по кейап.. проверка заполнения у меня в модуле прописана.. по сабмиту. Но я хочу эту проверку через аякс вызывать чтоб цена или сообщение отображдалось о невозможности пересчета. Просто по change думаю будет экономичнее..меньше вызовов.
я бы задавал критерии в админке, выводил их прямо в скрипт ноды пыхом а все остальное на жабе считал. тогда аякс не уперся, не нужен веб-формс и можно слабать любую форму без изврата.
вариантов много... у меня просто модуль со всеми критериями уже написан. Вопрос именно в отображении цены встал. Поскольку цена меняется от конкретных выбранных полей. Ну а вэбформ просто удобно. У меня таких форм несколько десятков. Руками писать лень
ну тогда, конечно
Вот, кстати парочка ссылок на тему того, как правильно кодить на жабаКьюри:
http://net.tutsplus.com/tutorials/javascript-ajax/14-helpful-jquery-tric...
http://tutorialzine.com/2011/06/15-powerful-jquery-tips-and-tricks-for-d...
http://stackoverflow.com/questions/182630/jquery-tips-and-tricks
http://viralpatel.net/blogs/2009/08/20-top-jquery-tips-tricks-for-jquery...
http://sixrevisions.com/javascript/10-easy-jquery-tricks-for-designers/
http://www.catswhocode.com/blog/8-awesome-jquery-tips-and-tricks
Вообще инфы навалом на эту тему.
Их личного опыта. Может и ошибаюсь. Но учится по книжке, это очень не эффективно.
Гораздо эффективней, когда есть реальная задача и ты ее решаешь. А книгу юзать как справочник.
имхо конечно, но хер оспоришь )))
Все правильно. Книжку можно почитать на предмет каких-то мыслей ценных, но чтобы понимать, нужно реально пользоваться, соотносить и вообще быть в теме. Но если пользоваться в основном готовыми плагинами, такого понимания не будет.
Тоже на самом деле спорно. Книги хороши для чтения вне компьютера, когда не сам код понять пытаешься, а более фундаментальные вещи. Но это стопудовое зло постоянно читать. Надо брать и делать
Согласен.
Я кстати зачастую пытаюсь, сам писать модули. По этой причине. Пока не начинаешь делать, не понимаешь как это сложно или легко. И новых знаний не получаешь, пока не столкнешься с этим.
Совсем не давно, в близкой галактике, в нашей солнечной системе, на нашей планете, в моем городе, один человек, мне ответил на вопрос, как научится программировать.
- Если хочешь научится программировать, я могу дать тебе 100уе, и мне надо одну задачку сделать. Я тебе даю гарантию, ты быстро научишься.
Тогда, я в это не поверил. А сейчас, я также всем говорю, кто спрашивает, как научиться программировать.
Еще и желание нужно и есть какой-то порог, после которого начинаешь понимать. А так да, правильная мотивация и подсказки никогда не вредят
Конечною, без желания, даже кролики не трахаются
))))
Не менее половины того что я знаю,а я думаю куда как больше двух третей даже - было узнано именно в процессе "Вы это умеете? Да конечно" - хотя имел только базовые знания и отдаленное представление куда копать. Так что, согласен на все сто. Мотивация плюс мозги. Вот он рецепт успеха.