Кавычки и престашоп движок
Народ при установке
<a class="highslide" href="#" onclick="return hs.htmlExpand(this, { contentId:'highslide-html'} )"> при клике увеличивается </a> перестает отображатся часть страницы, и дело в кавычках, я их экранировал и шаманил, и ничего! работает только так но это не то что нужно сам найслайд не работает как положенно <a class="highslide" href="#" onclick="return hs.htmlExpand(this)"> при клике увеличивается </a> |
<a class="highslide" href="#" onclick="a=this;return hs.htmlExpand(a, { contentId:'highslide-html'} )"> при клике увеличивается </a> |
Нет этот тоже не катит проблема скорее в участке
{ contentId:'highslide-html'} Кавычки не признает |
А можно както подключить класс?
|
INDUK,
<script> var obj = { contentId:'highslide-html' }; </script> <a class="highslide" href="#" onclick="return hs.htmlExpand(this, obj)"> при клике увеличивается </a> |
INDUK,
Проблема - в том - что не передаётся this <a class="highslide" href="#" onclick="abxzs244=this;return hs.htmlExpand(abxzs244, { contentId:'highslide-html'} )"> при клике увеличивается </a> Попробуйте так |
Цитата:
|
devote,
Там вызов через задержку анимации - поэтому и не передаётся |
Цитата:
ну вызываю я: hs.htmlExpand(this, {contentId: 'highslide-html'});и хде тут задержка? там внутри функции чтоль? то что там внутри уже не важно, this я передал, а уж дальше никаких проблем при вызове не должно быть. У него просто что-то не правильно, происходит сбой или еще что.. смотреть в сторону консоли надо на ошибки.. И они явно не связаны с тем как была вызвана функция. |
Цитата:
Типо <a class="highslide" href="#" onclick="setTimeout(function(){alert(this.href)},100);return false;"> Клик </a> <a class="highslide" href="#" onclick="setTimeout('alert(this.href)',100);return false;"> Клик </a> <a class="highslide" href="#" onclick="abxzs244=this;setTimeout(function(){alert(abxzs244.href)},100);return false;"> Клик </a> <a class="highslide" href="#" onclick="abxzs244=this;setTimeout('alert(abxzs244.href)',100);return false;"> Клик </a> |
Нет задержек нет, дело в кавычках/конструкции, которая как-то не правильно интерпретируется движком престашоп или ее какойлибо частью.
Решил задачю так <script type="text/javascript" src="highslide/contentIdhighslide-html.js"></script> </script><a class="highslide" href="#" onclick="return hs.htmlExpand(this, obj)"> при клике увеличивается </a> в подключенном файле var obj = { contentId:'highslide-html' }; Знаю что через ж... но работает только так |
Deff,
но у него то нет обертки в функцию, у него просто вызов метода, и никакой обертки. Понятно дело что оборачивая в функции нужно и контекст передавать. |
INDUK,
а в чем сложность написать так: <a class="highslide" href="#" onclick="return hs.htmlExpand(this, { contentId:"highslide-html"} )"> при клике увеличивается </a> |
<a class="highslide" href="#" onclick="abxzs244=this;setTimeout('alert(\'abxzs244.href\')',100);return false;"> Клик </a>Ecли у него требует повторной экранировки = занчит функция в функции - this тож нужно передавать помимо кавычек <a class="highslide" href="#" onclick="abxzs244=this;return hs.htmlExpand(abxzs244, { contentId:"highslide-html"} )"> при клике увеличивается </a> |
HTML и XML ведь разрешают использовать одиночные кавычки без экранирование внутри значения атрибута, если оно взято в двойные кавычки - почему тогда тот код не работал? Мне самому интересно.
|
oneguy,
если у него Пример в посту 14 - 1-й вариант (он себя в функции использует одиночные |
Цитата:
|
Цитата:
|
Цитата:
|
INDUK,
:write: <a class="highslide" href="#" onclick='abxzs244=this;return hs.htmlExpand(abxzs244, { contentId:"highslide-html"} )'> при клике увеличивается </a> |
Часовой пояс GMT +3, время: 22:18. |