Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
не работает Файловый менеджер - Некорректный ответ сервера. Данные отсутствуют

Автор ivan23Раздел Настройка системы и модулей

Ответов: 3
Просмотров: 4062
Последний ответ 30 Ноября 2018, 16:44:45
от MrUnless
как узнать id заказа (корзины) с которой работает покупатель

Автор atachРаздел Custom макросы

Ответов: 6
Просмотров: 5256
Последний ответ 22 Августа 2013, 22:57:57
от atach
Почему-то не работает edit-in-place для одного из полей

Автор VeinardРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 3117
Последний ответ 16 Сентября 2014, 03:38:31
от Veinard
Опции товара - почему не работает код взятый с вики?

Автор CanektРаздел Шаблоны XSLT

Ответов: 0
Просмотров: 1346
Последний ответ 09 Августа 2017, 12:07:14
от Canekt
Скрипт не работает при подключении Edit-in-Place

Автор diii3Раздел Шаблоны XSLT

Ответов: 3
Просмотров: 3534
Последний ответ 20 Марта 2012, 12:01:52
от diii3

0 Пользователей и 1 Гость просматривают эту тему.

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
jQuery код не работает
« : 18 Марта 2012, 00:18:38 »
Здравствуйте! Подскажите, пожалуйста, как можно сделать так чтобы код описанный ниже не вызывал ошибку в работе шаблона и заработал, если это конечно возможно:

<a title="Bookmark" class="bookmark" href="" onclick="jQuery('html, body').animate( { scrollTop: 0 }, 'slow' );"><img border="0" title="" alt="" src="/images/top.gif" /></a>

Ссылка должна возвращать пользователя вверх страницы.

*

BaceH

  • ***
  • 141
  • +21/-0
    • Просмотр профиля
Re:jQuery код не работает
« Ответ #1 : 18 Марта 2012, 02:38:53 »
какую ошибку вызывает данный код? в каком месте шаблона он вставлен? Подключен ли скрипт jQuery и как подключен?

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:jQuery код не работает
« Ответ #2 : 18 Марта 2012, 13:57:28 »
Спасибо! Разобрался!

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:jQuery код не работает
« Ответ #3 : 18 Марта 2012, 14:23:47 »
а для тех, кто не разобрался отвечу)

дело в том что вставляя код js внутрь атрибута onclick, тега a вы нарушаете синтаксис используя символ { или }, так как эти символы зарезервированы для вывода значения узла, переменной, параметра или атрибута указанного внутри фигурных скобок.

То есть вам надо убрать код
jQuery('html, body').animate( { scrollTop: 0 }, 'slow' );

из тега a

это можно сделать следующими способами:

1. использовать xsl конструкцию attribute передав значение для атрибута onclick через него, экранировав его через <![CDATA[...]]>
Пример:
<a title="Bookmark" class="bookmark" href="">
<xsl:attribute name="onclick"><![CDATA[jQuery('html, body').animate( { scrollTop: 0 }, 'slow' );]]></xsl:attribute >
<img border="0" title="" alt="" src="/images/top.gif" />
</a>

2. вынести этот код в отдельный файл, прописав там обработчик события на нажатие по данной ссылке
Пример:
код нашей ссылки остается почти таким же, только без атрибута onclick
<a title="Bookmark" class="bookmark" href="">
<img border="0" title="" alt="" src="/images/top.gif" />
</a>
Далее, мы создаем файл /js/dev/start.js (назвать и положить его можно как и куда угодно, это не принципиально, главное не забудьте подключить этот файл в вашем шаблоне). Код данного файла:
$(document).ready(function() {	
jQuery('.bookmark').click(function(){
jQuery('html, body').animate( { scrollTop: 0 }, 'slow' );
})
});

P.S. и мой совет, добавь в конце кода js которым ты обрабатываешь нажатие на ссылку return false;
jQuery('html, body').animate( { scrollTop: 0 }, 'slow' ); return false;
, а то помимо скроллинга страницы вверх будет происходить еще  и перезагрузка страницы.
« Последнее редактирование: 18 Марта 2012, 14:25:44 от admin »

*

diii3

  • ***
  • 154
  • +6/-0
    • Просмотр профиля
Re:jQuery код не работает
« Ответ #4 : 18 Марта 2012, 14:56:33 »
Да, спасибо, теперь все как надо!