Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   вопрос о методе on() (https://javascript.ru/forum/misc/29005-vopros-o-metode.html)

dadli 10.06.2012 23:19

вопрос о методе on()
 
приветствую
здес http://jquery.page2page.ru/index.php5/On читаю:
Цитата:

Метод on() введен в jQuery-1.7, чтобы объединить три метода библиотеки, устанавливающие обработчики событий на элементы страницы: .bind(), .delegate(), .live(). Сами эти методы считаются теперь устаревшими, хотя еще поддерживаться
но здес не правилно написано тот момент что ,on() объединить три метода, (и в том числе live() ), так как метод on() не сделает тоже самое, что live(). интереснее услишать ваше мнение, почему етом статие написано так?
или я ошибаю и on() тоже можно исползовать как метод live() ?

Gvozd 10.06.2012 23:27

Вот поэтому надо читать официальную документацию на английском, а не переводы, которые сделаны какими-то надмозгами
http://api.jquery.com/on/
Цитата:

For help in converting from older jQuery event methods, see .bind(), .delegate(), and .live()
Ну а по ссылке http://api.jquery.com/live/ уже все написано, как теперь следует писать

dadli 10.06.2012 23:54

что то не понял, здес http://api.jquery.com/live/ написано
Цитата:

the .live() method is deprecated
но не понимаю как написать такие коди (ниже), если не исползовать live()? все ровно придётся исползовать метод live() если хотим получит что то такое:

$(document).ready (function () {
	$("#div1").on("click", function () {
		$("#div1").after("<div id='div2'>div2</div>");
	});
	
	
	$("#div2").live("click", function () {
		alert("asd");
	});
});


если я не прав, поправте плиз

Gvozd 10.06.2012 23:58

Цитата:

Сообщение от dadli
если я не прав, поправте плиз

Дочитайте документацию до конца.
Я же сказал, что там все написано

dadli 11.06.2012 00:20

Gvozd,
несколко раз перечитал документацю до конца и мне стыдно, но не понимал, не получил ответ на маём вопросе, то есть
там, в доке ( http://api.jquery.com/live/ ) тоже, если хотят что "сеичас" созданни елемент бил интерактивним, то везде исползуется метод live().
другое алтернативи я не видел. можете подсказать что я пропустил? где написано о алтернативе метoда live() ?

devote 11.06.2012 00:25

<div id="div1">my div</div>
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready (function () {
    $("#div1").on("click", function () {
        $("#div1").after("<div id='div2'>div2</div>");
    });
     
     
    $(document).on("click", "#div2", function () {
        alert("asd");
    });
});
</script>

dadli 11.06.2012 00:29

devote,
вааау, огромноe спасибо :)
Gvozd,
и огромноe спасибо вам :)

Gvozd 11.06.2012 00:33

Цитата:

Сообщение от dadli
несколко раз перечитал документацю до конца и мне стыдно, но не понимал, не получил ответ на маём вопросе,

Сразу после слов "Rewriting the .live() method in terms of its successors is straightforward; these are templates for equivalent calls for all three event attachment methods:"
там три строчки, которые делают одно и тоже

devote 11.06.2012 00:53

Deff,
в чем различия в твоем примере? Что-то не вижу разницы.

devote 11.06.2012 01:03

Цитата:

Сообщение от Deff
devote,
Когда я писал - был ток пост 5 (мну пока не такой скорострельный как Ти

20 минут писал пять строк. Я может и быстр, но писал бы всегда за 20 минут пять строк, я бы ничего не зарабатывал)
Цитата:

Сообщение от Deff
Можу убрать ?

да пусть будет


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