Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 12/10/16 в 23:55 |
Начал разбор jQuery и тут возник вопрос, как можно кликом мышки по экрану вывести через alert() имя DOM элемента в котором произведен клик.
Начал копать в сторону this, но что-то я тут не совсем разберусь.
|
|
|
|
С нами с 29.11.14
Сообщения: 254
Рейтинг: 575
|
Добавлено: 13/10/16 в 01:03 |
погугли eventTarget и все станет понятным
|
|
|
|
Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 13/10/16 в 08:15 |
xjam писал: | погугли eventTarget и все станет понятным |
Спасибо! Нашел даже с примером подобный нужному.
|
|
|
|
📈sflash.biz
С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447
|
Добавлено: 13/10/16 в 09:23 |
Lexikon: jQuery обьект элемента не одно и то же, что DOM обьект браузера. Это принципиальное различие.
|
|
|
|
Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 13/10/16 в 20:09 |
S_Flash писал: | Lexikon: jQuery обьект элемента не одно и то же, что DOM обьект браузера. Это принципиальное различие. |
Не совсем понял о чем речь.
|
|
|
|
📈sflash.biz
С нами с 03.11.12
Сообщения: 3913
Рейтинг: 4447
|
Добавлено: 13/10/16 в 21:15 |
Lexikon писал: | Не совсем понял о чем речь. |
$('#elemid') и document.getElementById('elemid') - разные обьекты, хотя может показаться иначе. Из первого можно получить второй.
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 14/10/16 в 00:42 |
Внутри event handler-a this = DOM элемент.
|
|
apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only
|
0
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 14/10/16 в 08:54 |
S_Flash писал: | $('#elemid') и document.getElementById('elemid') - разные обьекты |
а $('#elemid') и document.querySelector('#elemid') - разные?
Чур не подглядывать в гугол.
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 14/10/16 в 11:37 |
|
|
|
|
Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 14/10/16 в 18:11 |
S_Flash писал: | $('#elemid') и document.getElementById('elemid') - разные обьекты, хотя может показаться иначе. Из первого можно получить второй. |
Теперь понятней. Благодарю!
|
|
|
|
Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 14/10/16 в 18:38 |
Вчера занимался написанием коротких кодиков, для практических навыков. Интересная вещь этот jQuery, занимательная
Но вот как я понял одновременно несколько операций jQuery выполнять не может.
Вчера попытался свернуть div и одновременно чтоб в этом диве исчезал текст, но всё происходило последовательно.
JS
Код: |
$(function(){
$(".divTextBlock").click(function() {
$("#pTextBlock").hide(2000, function(){
$(".divTextBlock").hide(2000);
});
});
});
|
HTML
Код: |
<div class="divTextBlock"><p id="pTextBlock">only text / only text / only text / only text / only text / only text / only text</p></div>
|
Можно сделать так, чтоб всё выполнялось не последовательно, а одновременно? А то сначала #pTextBlock скрывается, затем .divTextBlock, а хотелось одновременно.
|
|
|
|
С нами с 25.12.14
Сообщения: 602
Рейтинг: 441
|
Добавлено: 14/10/16 в 19:55 |
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 14/10/16 в 21:00 |
Lexikon писал: | Интересная вещь этот jQuery, занимательная |
Тока учти один момент. Как только ты подгрузил жквери, вкладка браузера утяжелилась минимум на 35 мегабайт ;)
|
|
|
|
С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032
|
Добавлено: 15/10/16 в 00:41 |
Такое использование dequeue() может привести к трудно отлавливаемым багам.
В случае, когда в очереди только 2 элемента, все работает как задумано.
Если в очереди больше 3 элементов и dequeue использован 1 раз, тогда вместо "сначала выполнить 2 эффекта вместе, а потом все остальные по очереди" получаем " все эффекты выполняются по 2 одновременно". Если dequeue() использовать 2 раза, чтобы запустить три эффекта подряд, получим выполнение всех эффектов по 3 одновременно.
Заковыка в том, что коробочные эффекты (slideX, animate etc) внутри вызывают dequeue() для движения по очереди. Поэтому если мы одновременно запускаем на выполнение 2 эффекта посредством ручного вызова dequeue(), когда эти эффекты доработают, они ОБА вызовут dequeue() и тем самым запустят два следующих эффекта и т.д.
Попробуй выполнить цепочку
Код: |
animate({...}).animate({...}).dequeue().animate({...}).animate({...})
|
Эффекты 1-2 и 3-4 запустятся одновременно.
Назначение dequeue() - движение по очереди в кастомных функциях, добавленных в очередь методом queue().
Запускать эффекты одновременно нужно без очередей:
Код: |
$selection
.animate({width:"+=100px"},{queue: false})
.animate({height:"+=100px"},{queue: false});
|
Доступ к флагу queue есть только в этом формате вызова animate(). Все параметры (duration etc) передаются через второй параметр-объект.
|
|
apache, bash, css, elasticsearch, ffmpeg, html, js, mysql, mongo, nginx, php; *nix only
|
10
|
|
|
С нами с 22.05.04
Сообщения: 268
Рейтинг: 251
|
Добавлено: 15/10/16 в 01:47 |
Rem как бы намекает что логика и фичи JS фреймворков слегка twisted, да
|
|
Нестандартные задачи. Кастом программинг на ПХП. Оптимизация стороннего кода. Недорого, недешево.
|
0
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 15/10/16 в 05:11 |
Lexikon писал: | Вчера попытался свернуть div и одновременно чтоб в этом диве исчезал текст |
Для этого нужен JQuery? В 2016?
|
|
|
|
Люблю то, что делаю!
С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418
|
Добавлено: 15/10/16 в 07:42 |
Yacc писал: | Для этого нужен JQuery? В 2016? |
В самом первом посте я написал "Начал разбор jQuery..." т.е. научиться сворачивать див с исчезающим текстом это не была основная и конечная цель , это как один из рабочих моментов в изучении и непонимании jQuery.
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 15/10/16 в 10:21 |
Понимать надо стоящую перед тобой задачу. jQuery не надо понимать, это библиотека - набор функций, их нужно просто знать, чтобы никогда не использовать.
Вот: http://microjs.com
|
|
|
|