Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: chrome событие click или keypress [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: как сэмулировать событие?
IllusionMH
Отправлено: 08 Февраля, 2012 - 02:16:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




tuareg, изменить location я прекрасно могу, моей целью было показать что просто нажать на ссылку не получается.
Похоже что jQuery может вызывать только навешанные обработчики, но не может вызвать стандартную реакцию. Если ошибаюсь - поправьте, буду благодарен.

upd. Ориентировался на документацию
Цитата:
.trigger()
Event Handler Attachment

Execute all handlers and behaviors attached to the matched elements for the given event type.

Как я понял: выполняет все обработчики и вызывает стандартное поведение...

(Отредактировано автором: 08 Февраля, 2012 - 02:22:48)

 
 Top
tuareg
Отправлено: 08 Февраля, 2012 - 02:24:42
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Получается что это так. (легко проверяется на Вашем примере)
А по поводу темы. Я указал, что проблема решается использованием $.Deferred().
 
 Top
Viper
Отправлено: 08 Февраля, 2012 - 08:24:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Все же непонятно почему у вас не работает. Специально создал страницу для теста и запустил в хроме.
index.html собстно подключает fancybox и JQ + ссылка в body на ajax страницу. ajax.html тупая пага с ссылкой вида
CODE (html):
скопировать код в буфер обмена
  1. <a href="javascript:void(0);" id="a">Test</a>

и кодом
CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2. //<![CDATA[
  3.         jQuery(document).ready(function($){
  4.                 $('#a').click(function(){
  5.                         $.fancybox.close();
  6.                 });
  7.         });
  8. //]]>
  9. </script>

Никаких ошибок нет. Отсюда вывод - говнокод у вас.

PS! Хром версии 16.0.912.77 m


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Panoptik
Отправлено: 08 Февраля, 2012 - 10:57:19
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




Перечитал всё и теперь даже не могу понять что и как? есть ли решение задачи или нет?
вот это что такое и куда его?
tuareg пишет:
$.Deferred().


-----
Just do it
 
 Top
tuareg
Отправлено: 08 Февраля, 2012 - 11:07:20
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Решение простое даже очень. Но сначала надо вынести
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form method="post" id="info"  style="margin:0 0 0 20px;" onsubmit="return submit_form();">
  3.  
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(document).ready(function(){
  3.  $('#info').submit(function(e){/*по идее можно и клик */
  4.    e.preventDefault();
  5.    var data = $('#info').serialize(),
  6.          defer=$.post('/includes/jprocessing.php',{action:'save_char_goods',data:data});
  7.    defer.done(function(msg){
  8.       if(msg.match(/успешно/)){
  9.          alert('успешно');
  10.          /*$('элемент закрытия fancybox').click();*/
  11.       }
  12.       eles{
  13.          alert('не получилось')
  14.       }
  15.    });
  16.  });
  17. })
  18.  

(Отредактировано автором: 08 Февраля, 2012 - 11:11:41)

 
 Top
Panoptik
Отправлено: 08 Февраля, 2012 - 11:26:03
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




ни в какую
CODE (javascript):
скопировать код в буфер обмена
  1.     $('#info').submit(function(e){/*по идее можно и клик */
  2.         e.preventDefault();
  3.             var data = $('#info').serialize(),
  4.             defer=$.post('/includes/jprocessing.php',{action:'save_char_goods',data:data});
  5.             defer.done(function(msg){
  6.             if(msg.match(/успешно/)){
  7.             alert('успешно');
  8.                 if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
  9.                     alert('this is chrome section');
  10.                     $('#fancybox-close').click();
  11.                 } else {
  12.                     document.getElementById('fancybox-close').click();
  13.                 }
  14.             }
  15.             else{
  16.                 alert('не получилось')
  17.             }
  18.         });
  19.     });
в секции хрома игнорирует $('#fancybox-close').click(); ошибок не выдает. в секции else (например в ФФ всё работает отлично) в хроме данный блок приводит к ошибке "отсутствие метода клик у объекта"


-----
Just do it
 
 Top
tuareg
Отправлено: 08 Февраля, 2012 - 11:36:16
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Вы можете выложить чтобы посмотреть?
 
 Top
Panoptik
Отправлено: 08 Февраля, 2012 - 11:41:52
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




Отправил в ЛС.
(Добавление)
CODE (javascript):
скопировать код в буфер обмена
  1.    
  2.     $('#info').submit(function(e){/*по идее можно и клик */
  3.         e.preventDefault();
  4.             var data = $('#info').serialize(),
  5.             defer=$.post('/includes/jprocessing.php',{action:'save_char_goods',data:data});
  6.             defer.done(function(msg){
  7.             if(msg.match(/успешно/)){
  8.                 alert('успешно');
  9.                 $('#fancybox-close').click();
  10.             }
  11.             else{
  12.                 alert('не получилось')
  13.             }
  14.         });
  15.     });
в конце концов этот код заработал.
из действий предпринятых мнойю, было перераспределение подключения javascript'oв, которые подгружались при аджаксе. наверное изза-этого и был конфликт. спасибы всем за советы и помощь особенно tuareg.


-----
Just do it
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB