Scroll() не работает в jQuery для динамических элементов
Я использую следующее. Это не работает для динамически созданных элементов. Я usinh jQuery 1.4.2
Это также не работает и для обычных элементов. (которые загружаются при загрузке страницы)
Что может быть причиной здесь. Пожалуйста, помогите мне. Спасибо заранее.
Браузеры изменяются, ошибки jQuery исправлены, поэтому две причины, почему важно всегда использовать последнюю версию jQuery (после проведения тестов вы не можете просто указать на последние).
Ваш код, адаптированный для jQuery 1.9, будет для другого типа событий
Причиной использования $(document) в качестве получателя, а не $(«.wrapper1») является то, что только элементы, существующие во время привязки, будут получать и делегировать события. on не работает, как старый live .
За исключением того, что это не будет работать для событий scroll , поскольку они не пузырятся.
Поэтому самым разумным решением, которое я могу предложить, было бы определение функции:
и назовите его в начале:
и каждый раз, когда вы создаете новый элемент .wrapper1:
Обратите внимание, что ваша полная логика кажется немного недостаточной, поскольку вы не спариваете полосы прокрутки, но заставляете их работать одинаково.
Я знаю, что вы решили свою проблему (или думаете, что решили ее), но если у вас есть некоторые проблемы, вы должны знать:
Обработчики событий привязаны только к выбранным в данный момент элементам; они должны существовать на странице в момент, когда ваш код делает вызов .on() .
Существует 2 способа использования функции .on() :
Обработчик событий напрямую привязан к соответствующим элементам. Поскольку это сделано императивно, селектор разрешен, и все согласованные элементы получают подключенный обработчик событий. Это то же самое, что и вызов $(‘.asdf’).click() .
$(‘selector1’).on(‘event’, ‘selector2’, function () < handler >);
Как вы видите, есть два селектора: обработчик событий будет прикреплен к selector1, но он будет обрабатывать события, запущенные на селекторе2! Это очень похоже на .live() или .delegate() , (на самом деле это то же самое).
Что делает .live() , он прикрепляет обработчик события к «документу» и обрабатывает события элементов, соответствующих селектору (это то же самое, что и $(‘document’).on(‘event’, ‘selector’, function() <>); ).
Преимущество этого заключается в том, что обработчик события привязан к уже существующему элементу и который сможет обрабатывать события динамически создаваемых элементов посредством пузырьков событий.
Итак, в вашем случае второй синтаксис кажется вам нужным.
РЕДАКТИРОВАТЬ. Существует большая проблема с этим, о котором я не знал: элемент прокрутки не пузырится. Есть обходные пути, но у меня нет времени, чтобы написать решение сейчас. Позвольте мне вернуться к нему, когда я вернусь через несколько часов. Или, если решение dystroy работает, пожалуйста, не стесняйтесь его принимать.
Источник
Не работает scroll
На всех других своих сайтах пробовал все работает.Тут вот такая ошибка
Uncaught TypeError: Failed to execute ‘scroll’ on ‘Window’: 2 arguments required, but only 1 present.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Не работает событие scroll
Здравствуйте, у меня вот такая вроде и глупая проблема но все же — Не очень часто сталкиваюсь с.
Не работает live(‘scroll’, handler)
Всем привет! Не могу заставить работать live() с событием прокрутки страницы. Может кто.
OFF scroll на body > ON scroll children
Добрый день. Возник вопрос как сделать так чтоб при на ведении на элемент событие scroll работало в.
Ни чего не забыли? Если вот так:
Возвращаюсь к Uncaught TypeError: Failed to execute ‘scroll’ on ‘Window’: 2 arguments required, but only 1 present.
Добавлено через 3 минуты
Решение
Не работает Scroll
установил xptweaker полазил в нём чёто поменял и где то там затесалась настройка скролла (чтото.
При scroll’e не пролистываются объекты, имеющие компонент scroll rect
Есть главная панель со scroll rect’ом для горизонтального scroll’а и event trigger’ом (для проверки.
Почему на мышке в VB не работает Scroll?
Подскажите, пожалуйста,начинающему программисту почему на мышке в VB не работает Scroll? Это.
Scroll в теге DIV не работает
Приветствую всех! Прошу всех прочитавших мне помочь. Постараюсь вкратце обьяснить: Нашел на неком.
Источник
jQuery scrollTop not working in Chrome but working in Firefox
I have used a scrollTop function in jQuery for navigating to top, but strangely ‘the smooth animated scroll’ stopped working in Safari and Chrome (scrolling without smooth animation) after I made some changes.
But it is still working smoothly in Firefox. What could be wrong?
Here is the jQuery function I used,
16 Answers 16
Try using $(«html,body»).animate(< scrollTop: 0 >, «slow»);
This works for me in chrome.
If your CSS html element has the following overflow markup, scrollTop will not function.
To allow scrollTop to scroll, modify your markup remove overflow markup from the html element and append to a body element.
It works in both browsers if you use scrollTop() with ‘document’:
. instead of ‘html’ or ‘body’. Other way it won’t work at the same time in both browsers.
I have used this with success in Chrome, Firefox, and Safari. Haven’t been able to test it in IE yet.
The reason for the «if» statement is to check if the user is all ready at the top of the site. If so, don’t do the animation. That way we don’t have to worry so much about screen resolution.
The reason I use $(document).scrollTop instead of ie. $(‘html,body’) is cause Chrome always return 0 for some reason.
I had a same problem with scrolling in chrome. So i removed this lines of codes from my style file.
Now i can play with scroll and it works:
Scroll body and check if it worked:
This is more efficient than $(«html, body»).animate because only one animation used, not two. Thus, only one callback fires, not two.
maybe you mean top: 0
.animate( properties, [ duration ], [ easing ], [ callback ] )
properties A map of CSS properties that the animation will move toward.
.
BUT, best approach is to scroll an id into your viewport using just native api (since you scroll to top anyway this can be just your outer div):
A better way to solve this problem is to use a function like this:
This will work across all browsers and prevents FireFox from scrolling up twice (which is what happens if you use the accepted answer — $(«html,body»).animate(< scrollTop: 0 >, «slow»); ).
Testing on Chrome, Firefox and Edge, the only solution that worked fine for me is using setTimeout with the solution of Aaron in this way:
No one of the other solutions resetted the previuos scrollTop, when I reloaded the page, in Chrome and Edge for me. Unfortunately there is still a little «flick» in Edge.
So I was having this problem too and I have written this function:
I hope it will be helpfully for other programmers.
If it work all fine for Mozilla, with html,body selector, then there is a good chance that the problem is related to the overflow, if the overflow in html or body is set to auto, then this will cause chrome to not work well, cause when it is set to auto, scrollTop property on animate will not work, i don’t know exactly why! but the solution is to omit the overflow, don’t set it! that solved it for me! if you are setting it to auto, take it off!
if you are setting it to hidden, then do as it is described in «user2971963» answer (ctrl+f to find it). hope this is useful!
Источник
Jquery.on (‘scroll’) не запускает событие при прокрутке
событие прокрутки не запускается при прокрутке ul . Я использую jQuery версии 1.10.2. Как я загружаю ul со страницы ajax, я не мог использовать $(‘ulId’).on(‘scroll’, function() <>); или другие живые методы. Пожалуйста, помогите мне найти решение.
7 ответов:
вы, наверное, забыли дать # перед id для селектора id, вам нужно дать # до id т. е. ulId
Вам проблематично нужно привязать событие прокрутки на div, которое содержит ul и свитки. Вам нужно связать событие с div вместо ul
Edit
выше не будет работать, потому что событие прокрутки не всплывает в DOM, который используется для события делегация, смотрите этот вопрос почему не делегировать работу для прокрутки?
но с современными браузерами > IE 8 вы можете сделать это другим способом. Вместо делегирования с помощью jquery вы можете сделать это с помощью захвата событий с помощью Java script document.addEventListener , посмотрите, как пузырится и захват работы в этом tuturial.
Если вам не нужно делегирование событий, то вы можете привязать событие прокрутки непосредственно к ul вместо делегирования его через document .
привязка события прокрутки после загрузки ul с помощью ajax решила проблему. В моих выводах $(документ).on (‘scroll’, ‘#id’, function () <. >) не работает и связывает событие прокрутки после загрузки ajax, найденной рабочей.
вы можете отменить привязку события после удаления или замены ul.
надеюсь, что это может помочь кому-то.
используя VueJS я пробовал каждый метод в этом вопросе, но никто не работал. Поэтому, если кто-то борется с тем же самым:
Источник
Не работает событие scroll
т.е. не работает в функции ready и только при выборе window
Добавлено через 1 минуту
неужели никто не писал скролинг. помогите пожалуйста . )
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Событие scroll
Подскажите, как сделать чтобы происходило действие именно в момент когда ползунок скрола страницы.
событие .on(‘scroll’,
$(‘#diolog’).on(‘scroll’, ‘#history_message’, function() < alert(); >); почему не.
Скролл элемента .scroll() + событие
Добрый день уважаемые. Подскажите пожалуйста как реализовать такую штуку — Есть в хедере менюшка с.
Событие scroll и перезагрузка страницы
Есть простой код добавляющий стили к элементу при прокрутке страницы: $(window).on(«scroll».
Scroll-bar у div’элемента, как повесить функцию на событие скролл ВВЕРХ?
JavaScript!? (Jquery) возможно ли повесить функцию на событие клика по скроллбару в диве, если да.
Не работает scroll
Здравствуйте! http://draincleaner.ru/ Вот такой код $(window).scroll(function()< if.
Не работает live(‘scroll’, handler)
Всем привет! Не могу заставить работать live() с событием прокрутки страницы. Может кто.
TreeView где найти событие Scroll или как написать свое
Никак немогу найти у treeView событие Scroll или чтолибо подобное. В инете ничего толком так и не.
Источник