Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как запустить свою функцию по onclick
Oggy  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 548
Пользователь №: 30802
На форуме: 4 года, 11 месяцев, 20 дней
Карма: -9




Здравствуйте. Мне нужно запустить некий код когда был клик по классу 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');
}
}
);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4258
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 147




$('div.select2-result-label').bind('click',function() {...});
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Oggy  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 548
Пользователь №: 30802
На форуме: 4 года, 11 месяцев, 20 дней
Карма: -9




Цитата (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');
}
}
);
});
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14969
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 28 дней
Карма: 443




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
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4258
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 147




sergeiss
да?

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

$(document).ready(function(){
$('body').html('<div class="test">123</div>');
$('.test').bind('click',function(){alert(123);});
});
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14969
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 28 дней
Карма: 443




redreem, в своем примере ты назначаешь обработчик для УЖЕ созданного объекта. Я имел ввиду не просто динамически созданный объект (не совсем корректно выразился), а когда ты создаешь обработчик, но объекта еще не существует. Как я понял, у Oggy как раз так и есть: обработчик он создает заранее, в то время как сами объекты создаются позднее.

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

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


Это сообщение отредактировал sergeiss - 29.01.2016 - 14:47


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

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

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

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4258
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 147




sergeiss
не понимаю логики. нафига вешать обработчик на несуществующий объект?
1. создаем
2. вешаем
по-другому какое-то извращение
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14969
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 28 дней
Карма: 443




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

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


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

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

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

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4258
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 4 дня
Карма: 147




ну да. имеет право на жизнь. правда немного смущает смутные подозрения о надуманности реализации в нативном виде. ну да ладно.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса