конечно не работает :) простите
но читать надо вдумчиво, а не просто копировать. Основная идея, надеюсь, понятна? |
1. не нужно всех считать идиотами, я ваш код "обдумывал".
2. идея понятна, но и то она "не рабочая" даже на простом примере, а у меня в результате гораздо сложней будет конструкция, там этот "обход" не прокатит 3. Ваша идея заключалась в том, чтобы функция scroll выполнила 17 раз операцию text = 'текст', а потом один раз вставила ее на страницу. Меня такой костыль вряд ли устроит. вот рабочий пример того что мне нужно http://www.jstoolbox.com/demo/endless/ используется scroll(), но без бага и без костылей. |
в FireFox тоже все нормально. Только опера выполняет команду больше 1 раза..
|
здесь правильнее поступить так: .scroll() должен только менять состояние — пусть это будет переменная, флаг.
А функция подгрузки дополнительных сообщений должна быть подписана на событие изменения состояния этого флага. И тогда вы не зависите от багов различных своеобразных браузеров. |
Цитата:
* отношение количества вызовов к прошедшему времени. или частота вызова, напр. раз в 1 мс. var last = 0; $(window).scroll(function() var now = +new Date; if (now - last > 1) { last = now; // code ... $("span").append('<b>текст</b><br/>'); } } |
ограничивать время, ставить флаги это конечно же можно. Но это костыль, которым я воспользуюсь, если не найду другого решения.
очень много где используется scroll(), но везде работает без багов. Такое ощущение, что только у меня такой косяк. В любом случае, всем спасибо за помощь. |
Цитата:
тем более, если Вы работаете с DOM - будьте готовы к костылям на каждой строке. |
Цитата:
|
melky, вы меня убедили, спасибо за объяснение.
сделал так var scrollTimer = null; $(window).scroll(function () { if (scrollTimer) { clearTimeout(scrollTimer); } scrollTimer = setTimeout(handleScroll, 500); }); }); function handleScroll() { scrollTimer = null; $("span").append('<b>текст</b><br/>'); } и наконец-то нашел этот сервис http://jsfiddle.net/akaAU/10/ всем спасибо! |
Часовой пояс GMT +3, время: 03:27. |