Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.02.2010, 22:44
Новичок на форуме
Отправить личное сообщение для begin Посмотреть профиль Найти все сообщения от begin
 
Регистрация: 20.11.2009
Сообщений: 7

Как искусственно вызвать событие, назначенное кнопке в данном скрипте?
Есть лента изображений, помещенных в div. Одновременно видны только 3 изображения. По бокам есть кнопки для плавной прокрутки ленты. Построено это вот так:

<link rel="stylesheet" type="text/css" href="gallerystyle.css" />
        <script type="text/javascript" src="js/jquery-1.3.2.js"></script>
        <script type="text/javascript">
            var Gallery=function(){}
            Gallery.prototype={
        
                init: function(options){
                    defaults={
                        duration: 400,
                        zoomDuration: 400,
                        step: 110,
                        zoom: 1.63
                    }
                    this.options=$.extend(defaults, options);
                    this.container=$(options.container);
                    this.imgs=this.container.find('img');
                    this.zoomedImgs={};
                    this.initEvents();
                },
                
                initEvents: function(){
                    $(this.container).find('.left').bind('click', {gallery: this}, this.goLeft);
                    $(this.container).find('.right').bind('click', {gallery: this}, this.goRight);
                    $(this.container).find('.left2').bind('click', {gallery: this}, this.goLeft);
                    $(this.container).find('.right2').bind('click', {gallery: this}, this.goRight);
                },
                
                goLeft: function(event){
                    var gallery=event.data.gallery;
                    var options=gallery.options
                    var wrapper=gallery.container.find('.imgs');
                    var scrollLeft = gallery.scrollLeft != undefined ? gallery.scrollLeft-options.step : wrapper.scrollLeft()-options.step;
                    gallery.scrollLeft=scrollLeft;
                    wrapper.animate({
                        scrollLeft: scrollLeft
                    }, options.duration, function(){
                        gallery.scrollLeft=undefined;
                    });
                },
                
                goRight: function(event){
                    var gallery=event.data.gallery;
                    var options=gallery.options
                    var wrapper=gallery.container.find('.imgs');
                    var scrollLeft = gallery.scrollLeft != undefined ? gallery.scrollLeft+options.step : wrapper.scrollLeft()+options.step;
                    gallery.scrollLeft=scrollLeft;
                    wrapper.animate({
                        scrollLeft: scrollLeft
                    }, options.duration, function(){
                        gallery.scrollLeft=undefined;
                    })
                }
                
    
            }
            $().ready(function(){
                new Gallery().init({
                    container: '#gallery_container'
                })
            })
    
        </script>



Сама лента вставляется вот так:Код

<div id="gallery_container" class="gallery">
<div class="left" onclick="this.goLeft;"></div>
<div class="imgs">
<a href='index.php?option=3&id=01'><img src='photo/thumb_01.jpg'></a>
..
..
<a href='index.php?option=3&id=20'><img src='photo/thumb_20.jpg'></a>
</div>
<div class="right" onclick="this.goRight;"></div>
</div>



И все отлично работало. Но вот понадобилось искусственно вызывать прокрутку энное количество раз (чтобы при перезагрузке страницы сразу попасть в нужное место на ленте). Пробовал сделать вот так:Код

<div id="gallery_container" class="gallery">
<div class="left" onclick="this.goLeft;"></div>
<div class="imgs">
<a href='index.php?option=3&id=01'><img src='photo/thumb_01.jpg'></a>
..
..
<a href='index.php?option=3&id=20'><img src='photo/thumb_20.jpg'></a>
</div>
<div class="right" onclick="this.goRight;">
<?php
$ind=4; //нужно прокруть на 4 шага вправо
for ($i=1;$i<=$ind;$i++)
{
?>
<script type="text/javascript">
this.goRight;
</script>
<?php
}
?>
</div>
</div>


Но ничего не происходит. Подскажите, как правильно вызвать событие прокрутки несколько раз без нажатия элемента <div class="right"> ?
Ответить с цитированием
  #2 (permalink)  
Старый 28.02.2010, 08:19
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

Ужс какой та...
Так попробуйте:
&lt;div id="gallery_container" class="gallery">
<div class="left" onclick="this.goLeft;"></div>
<div class="imgs">
<a href='index.php?option=3&id=01'><img src='photo/thumb_01.jpg'></a>
..
..
<a href='index.php?option=3&id=20'><img src='photo/thumb_20.jpg'></a>
</div>
<div class="right" onclick="this.goRight;">

$('.right').goRight;

</div>
</div>
__________________
Нет предела совершенству...
Ответить с цитированием
  #3 (permalink)  
Старый 28.02.2010, 20:10
Новичок на форуме
Отправить личное сообщение для begin Посмотреть профиль Найти все сообщения от begin
 
Регистрация: 20.11.2009
Сообщений: 7

Сообщение от sysya Посмотреть сообщение
Ужс какой та...
Так попробуйте:
Попробовал:
<div id="gallery_container" class="gallery"> 
<div class="left" onclick="this.goLeft;"></div> 
<div class="imgs"> 
<a href='index.php?option=3&id=01'><img src='photo/thumb_01.jpg'></a> 
.. 
.. 
<a href='index.php?option=3&id=20'><img src='photo/thumb_20.jpg'></a> 
</div> 
<div class="right" onclick="this.goRight;"> 
<?php
$ind=4; //нужно прокруть на 4 шага вправо 
for ($i=1;$i<=$ind;$i++) 
{ 
?> 
<script type="text/javascript"> 
$('.right').goRight;
</script> 
<?php
} 
?> 
</div> 
</div>

Не работает
Ответить с цитированием
  #4 (permalink)  
Старый 28.02.2010, 20:38
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

Зачем цыкл for php-шный сюда вставили, это не поможет
__________________
Нет предела совершенству...
Ответить с цитированием
  #5 (permalink)  
Старый 28.02.2010, 20:42
Новичок на форуме
Отправить личное сообщение для begin Посмотреть профиль Найти все сообщения от begin
 
Регистрация: 20.11.2009
Сообщений: 7

Сообщение от sysya Посмотреть сообщение
Зачем цыкл for php-шный сюда вставили, это не поможет
Даже если я сделаю вот так, то все равно не работает:

<div id="gallery_container" class="gallery">  
<div class="left" onclick="this.goLeft;"></div>  
<div class="imgs">  
<a href='index.php?option=3&id=01'><img src='photo/thumb_01.jpg'></a>  
..  
..  
<a href='index.php?option=3&id=20'><img src='photo/thumb_20.jpg'></a>  
</div>  
<div class="right" onclick="this.goRight;">  
<script type="text/javascript">  
$('.right').goRight; 
$('.right').goRight; 
$('.right').goRight; 
$('.right').goRight; 
</script>  
</div>  
</div>
Ответить с цитированием
  #6 (permalink)  
Старый 28.02.2010, 20:52
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

показать возможно страницу полностью? Адрес например
__________________
Нет предела совершенству...
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2011, 10:59
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

$('.right').trigger('click');
//или 
$('.right').triggerHandler('click');
Думаю при загрузке страницы, сработает клик или обработчик события перелистывания...

эту каку запустить во временном цикле с помощью setInterval и как то заставить перелеснуть 4 раза, а затем остановить скрипт этот.

если я ошибаюсь поправьте пожалуйста, так как проверить код места нету пока
__________________
Нет предела совершенству...
Ответить с цитированием
  #8 (permalink)  
Старый 09.08.2011, 11:08
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

можно просто
$('.right').click();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вызвать принудительно событие olgatcpip Общие вопросы Javascript 5 13.11.2009 11:07
Как вызвать событие после события определенного в onchange Наталья Events/DOM/Window 2 12.09.2009 13:51
Как можно программно вызвать событие documenta onafterupdate nikolay84 Events/DOM/Window 1 08.07.2009 02:13
Как программно вызвать событие Jeka09 Events/DOM/Window 16 31.03.2009 14:26
как проверить поддеружет браузер определенное событие? GOll Элементы интерфейса 9 24.07.2008 14:40