Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Вопрос по jQuery
цитата
12/10/16 в 23:55
 Lexikon
Начал разбор jQuery и тут возник вопрос, как можно кликом мышки по экрану вывести через alert() имя DOM элемента в котором произведен клик.
Начал копать в сторону this, но что-то я тут не совсем разберусь.
цитата
13/10/16 в 01:03
 xjam
погугли eventTarget и все станет понятным
цитата
13/10/16 в 08:15
 Lexikon
xjam писал:
погугли eventTarget и все станет понятным

Спасибо! Нашел даже с примером подобный нужному. smail54.gif
цитата
13/10/16 в 09:23
 S_Flash
Lexikon: jQuery обьект элемента не одно и то же, что DOM обьект браузера. Это принципиальное различие.
цитата
13/10/16 в 20:09
 Lexikon
S_Flash писал:
Lexikon: jQuery обьект элемента не одно и то же, что DOM обьект браузера. Это принципиальное различие.

Не совсем понял о чем речь.
цитата
13/10/16 в 21:15
 S_Flash
Lexikon писал:
Не совсем понял о чем речь.

$('#elemid') и document.getElementById('elemid') - разные обьекты, хотя может показаться иначе. Из первого можно получить второй.
цитата
14/10/16 в 00:42
 johndoe2
Внутри event handler-a this = DOM элемент.
цитата
14/10/16 в 08:54
 Ailk
S_Flash писал:
$('#elemid') и document.getElementById('elemid') - разные обьекты

а $('#elemid') и document.querySelector('#elemid') - разные? trollface.png

Чур не подглядывать в гугол.
цитата
14/10/16 в 11:37
 Yacc


icon_smile.gif
цитата
14/10/16 в 18:11
 Lexikon
S_Flash писал:
$('#elemid') и document.getElementById('elemid') - разные обьекты, хотя может показаться иначе. Из первого можно получить второй.

Теперь понятней. icon_smile.gif Благодарю!
цитата
14/10/16 в 18:38
 Lexikon
Вчера занимался написанием коротких кодиков, для практических навыков. Интересная вещь этот jQuery, занимательная icon_smile.gif
Но вот как я понял одновременно несколько операций 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, а хотелось одновременно.
цитата
14/10/16 в 19:55
 dizziness
Lexikon писал:

Можно сделать так, чтоб всё выполнялось не последовательно, а одновременно? А то сначала #pTextBlock скрывается, затем .divTextBlock, а хотелось одновременно.


https://jsfiddle.net/umbrellacoders/yvjnd4qj/
цитата
14/10/16 в 21:00
 Ailk
Lexikon писал:
Интересная вещь этот jQuery, занимательная

Тока учти один момент. Как только ты подгрузил жквери, вкладка браузера утяжелилась минимум на 35 мегабайт ;)
цитата
15/10/16 в 00:41
 johndoe2
dizziness писал:

Такое использование 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) передаются через второй параметр-объект.

цитата
15/10/16 в 01:47
 rx
Rem как бы намекает что логика и фичи JS фреймворков слегка twisted, да trollface.png
цитата
15/10/16 в 05:11
 Yacc
Lexikon писал:
Вчера попытался свернуть div и одновременно чтоб в этом диве исчезал текст

Для этого нужен JQuery? В 2016?
цитата
15/10/16 в 07:42
 Lexikon
Yacc писал:
Для этого нужен JQuery? В 2016?

В самом первом посте я написал "Начал разбор jQuery..." т.е. научиться сворачивать див с исчезающим текстом это не была основная и конечная цель smail101.gif, это как один из рабочих моментов в изучении и непонимании jQuery.
цитата
15/10/16 в 10:21
 Yacc
Понимать надо стоящую перед тобой задачу. jQuery не надо понимать, это библиотека - набор функций, их нужно просто знать, чтобы никогда не использовать.

Вот: http://microjs.com


Эта страница в полной версии