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
Форумы портала PHP.SU :: Версия для печати :: chrome событие click или keypress [2]
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » chrome событие click или keypress

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

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

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

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

Как я понял: выполняет все обработчики и вызывает стандартное поведение...
17. tuareg - 08 Февраля, 2012 - 02:24:42 - перейти к сообщению
Получается что это так. (легко проверяется на Вашем примере)
А по поводу темы. Я указал, что проблема решается использованием $.Deferred().
18. Viper - 08 Февраля, 2012 - 08:24:22 - перейти к сообщению
Все же непонятно почему у вас не работает. Специально создал страницу для теста и запустил в хроме.
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
19. Panoptik - 08 Февраля, 2012 - 10:57:19 - перейти к сообщению
Перечитал всё и теперь даже не могу понять что и как? есть ли решение задачи или нет?
вот это что такое и куда его?
tuareg пишет:
$.Deferred().
20. tuareg - 08 Февраля, 2012 - 11:07:20 - перейти к сообщению
Решение простое даже очень. Но сначала надо вынести
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.  
21. Panoptik - 08 Февраля, 2012 - 11:26:03 - перейти к сообщению
ни в какую
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 (например в ФФ всё работает отлично) в хроме данный блок приводит к ошибке "отсутствие метода клик у объекта"
22. tuareg - 08 Февраля, 2012 - 11:36:16 - перейти к сообщению
Вы можете выложить чтобы посмотреть?
23. Panoptik - 08 Февраля, 2012 - 11:41:52 - перейти к сообщению
Отправил в ЛС.
(Добавление)
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.

 

Powered by ExBB FM 1.0 RC1