[Помогите] Не работает ссылка из-за common.js

Тема в разделе "OpenCart", создана пользователем vivivor, 27 янв 2013.

  1. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    Ссылка перехода в корзину
    [​IMG]
    не работает из-за этого текста в common.js
    Код:
    $('#cart > a').live('hover', function() {
    	$('#cart').addClass('active');
     
    	$('#cart').load('index.php?route=module/cart #cart > *');
     
    	$('#cart').live('mouseleave', function() {
    	  $(this).removeClass('active');
    	});
      });
    Слои негде не накладываются, заметил если много раз тыкать на ссылку, то иногда перекидывает в корзину
    вот сайт demostore-testseo.1gb.ru
     
  2. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    как только не изменял стили - бесполезно
     
  3. cobalt

    cobalt

    Регистрация:
    18 окт 2012
    Сообщения:
    278
    Симпатии:
    128
    Всё нормально работает... Или уже починили?
    Подглючивает только в ИЕ (переходит с четвёртого-пятого клика)
     
  4. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    странно, ничего не делал - стала чаще работать
    все равно теперь иногда не срабатывает)
     
  5. Rusik

    Rusik

    Регистрация:
    21 янв 2013
    Сообщения:
    166
    Симпатии:
    52
    Мм, очень редко не срабатывает.
    Попробуй hover заменить на mouseenter.
     
  6. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    не помогло
    --- добавлено: Jan 27, 2013 12:54 AM ---
    опять редко начало переходить
    во всех браузерах одинаково(последние версии все)
     
  7. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Добавте после первой строчки:
    Код:
    e.stopPropagation();
    и e параметром в функцию, которая вызывается при срабатывании события. Должно получиться так:
    Код:
    $('#cart > a').live('hover', function(e) {
    e.stopPropagation();
    У вас получается, что после разворачивания корзины продолжает постоянно срабатывать событие наведение курсора на корзину, пока курсор над ней. Это лучше всего заметно, когда в корзине есть товар, на пустой корзине у меня никаких странностей не было.
     
    vivivor нравится это.
  8. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    если добавить после первой строки, то всплывающей корзины вообще не появляется(ссылка работает),
    если добавить после второй строки, то всплывающая корзина так и остается активной после того как убран курсор
    еще заметил если я hover меняю на click. то ссылка отлично работает
     
  9. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Это легко объяснить: событие клика без клика не произойдёт, а событие овера формально происходит перманентно пока курсор над объектом. Собственно, в этом и заключается ваша проблема.

    Попробуйте так:
    Код:
    $('#cart > a').hover(function() {
    
    	$('#cart').addClass('active');
    
    	$('#cart').load('index.php?route=module/cart #cart > *');
    
    },
    	function() { 
    
    		$('#cart').removeClass('active'); 
    });
    
    И. наверно, стоит ловить событие не на ссылке, а на самом блоке #cart.
     
    vivivor нравится это.
  10. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    Прописал как вы указали - все отлично работает, но всплывающая корзина не пропадает когда убираешь курсор
    если
    $('#cart > a').hover(function() {
    изменить на
    $('#cart').hover(function() {
    - проблема опять проявляется