[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как запустить свою функцию по onclick
Oggy
Здравствуйте. Мне нужно запустить некий код когда был клик по классу select2-result-label. Этот html с этим классом был сгенерирован через js. Код незапускается - console.log несрабатывает. Скрипт на конце файла. Jquery подключён.

<ul class="select2-results" role="listbox" id="select2-results-2">
<li
class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted" role="presentation">
<div
class="select2-result-label" id="select2-result-label-15" role="option">
<span
class="select2-match"></span>
Business for Sale
</div>
</li>
</ul>



jQuery(document).on('click', "div.select2-result-label", function() {
console.log('123');
if(jQuery('#role').val() != 'seeking-to-acquire-a-business') {
jQuery("#ze-next").attr('value', 'Register');
} else {
jQuery("#ze-next").attr('value', 'Next');
}
}
);
redreem
$('div.select2-result-label').bind('click',function() {...});
Oggy
Цитата (redreem @ 29.01.2016 - 10:24)
$('div.select2-result-label').bind('click',function() {...});

сделал так, несработало

jQuery(document).ready(function() {
jQuery('div.select2-result-label').bind('click',function() {
console.log('123');
if(jQuery('#role').val() != 'seeking-to-acquire-a-business') {
jQuery("#ze-next").attr('value', 'Register');
} else {
jQuery("#ze-next").attr('value', 'Next');
}
}
);
});
sergeiss
redreem, для динамически создаваемых объектов так не получится.

Oggy, если я правильно понимаю, что ты хочешь получить, то
// надо эту строку
jQuery(document).on('click', "div.select2-result-label", function() {
// заменить на другую строку
jQuery('body').on('click', "div.select2-result-label", function() {


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
redreem
sergeiss
да?

выполни вот это:

$(document).ready(function(){
$('body').html('<div class="test">123</div>');
$('.test').bind('click',function(){alert(123);});
});
sergeiss
redreem, в своем примере ты назначаешь обработчик для УЖЕ созданного объекта. Я имел ввиду не просто динамически созданный объект (не совсем корректно выразился), а когда ты создаешь обработчик, но объекта еще не существует. Как я понял, у Oggy как раз так и есть: обработчик он создает заранее, в то время как сами объекты создаются позднее.

PS. redreem попробуй поменять эти 2 строки местами и ты поймешь, что я имел ввиду :)

PPS. А потом попробуй этот код:
$(document).ready(function(){
$('body').on('click', '.text', function(){alert(123);});
$('body').html('<div class="test">123</div>');
});


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
redreem
sergeiss
не понимаю логики. нафига вешать обработчик на несуществующий объект?
1. создаем
2. вешаем
по-другому какое-то извращение
sergeiss
Цитата (redreem @ 29.01.2016 - 14:51)
не понимаю логики. нафига вешать обработчик на несуществующий объект?

Логика есть и очень простая. И правильная.
Ну, допустим, у тебя создается некая таблица. У нее в каждой строке есть некий объект. Допустим, кнопка. При нажатии на которую нужно выполнить действие на основе данных из этой строки.
Эту "некую таблицу" грузим аяксом. И что - нам на каждую кнопку навешивать обработчик? А потом мы нечто подобное будем делать в другой части страницы - там тоже не забыть навесить обработчик? А если нам нужно навесить обработчики click, dblclick, mouseover, mouseout, mousedown, mouseup, заодно и клавиатурные - на каждый из создаваемых объектов...
Мы сделаем проще: "зарезервируем" нужные обработчики для некоего класса. Которые как раз и будут у нас присвоены нужному объекту. Как только появится этот объект - для его обработки уже есть все нужные обработчики.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
redreem
ну да. имеет право на жизнь. правда немного смущает смутные подозрения о надуманности реализации в нативном виде. ну да ладно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.