Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не обновляется значение переменной (https://javascript.ru/forum/events/57251-ne-obnovlyaetsya-znachenie-peremennojj.html)

formus 27.07.2015 00:37

Не обновляется значение переменной
 
Приветствую! Без применения глобального объявления title, можно ли как то решить задачу?
<div class="cal_event">1</div>
<div class="cal_event">2</div>
<div class="cal_event">3</div>
<div class="table">Показать</div>

$('.cal_event').bind("click", function() {
				var title = $(this).text()
		                alert (title) // Все норм, значения меняются в соответствии с текстом кнопки
				$('.table').bind("click", function() {
				alert (title) // Всегда значение, которое было при первом клике
})
})

Erolast 27.07.2015 07:38

$(".cal_event").on("click", function(calEvent) {
    $(".table").on("click", function() {
        alert($(calEvent).text());
    });
});


Названия классов элементов ужасные, просто ужасные.
И jQuery#bind уже давно как depricated.

рони 27.07.2015 07:46

formus,
Erolast,
а у вас молоко убежало alert размножается

рони 27.07.2015 07:52

Цитата:

Сообщение от Erolast
$(calEvent).title()

не могу понять как это работает

join 27.07.2015 08:42

Цитата:

Сообщение от Erolast
$(".cal_event").on("click", function(calEvent) {
$(".table").on("click", function() {
alert($(calEvent).text());
});
});


http://jsfiddle.net/00zLmLoe/ //not work

Erolast 27.07.2015 08:42

Цитата:

Сообщение от рони (Сообщение 381645)
не могу понять как это работает

Тьфу, описался. Поправил.

Цитата:

Сообщение от рони (Сообщение 381643)
alert размножается

Оригинальная логика сохранена.

Erolast 27.07.2015 08:48

Цитата:

Сообщение от join (Сообщение 381650)

Туплю, event.target надо брать:
<div class="cal_event">1</div>
<div class="cal_event">2</div>
<div class="cal_event">3</div>
<div class="table">Показать</div>

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
$(".cal_event").on("click", function(event) {
    var calEvent = event.target;
    $(".table").on("click", function() {
        alert($(calEvent).text());
    });
});
</script>

join 27.07.2015 09:11

чуть поправил

http://jsfiddle.net/00zLmLoe/3/

рони 27.07.2015 10:41

join,
тоже самое клик множится

Erolast 27.07.2015 11:29

Так в оригинале.


Часовой пояс GMT +3, время: 08:07.