Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Кавычки и престашоп движок (https://javascript.ru/forum/misc/30471-kavychki-i-prestashop-dvizhok.html)

INDUK 05.08.2012 20:25

Кавычки и престашоп движок
 
Народ при установке
<a class="highslide" href="#" 
onclick="return hs.htmlExpand(this, {  contentId:'highslide-html'} )">
при клике увеличивается

</a>


перестает отображатся часть страницы, и дело в кавычках, я их экранировал и шаманил, и ничего!

работает только так но это не то что нужно сам найслайд не работает как положенно
<a class="highslide" href="#" 
onclick="return hs.htmlExpand(this)">
при клике увеличивается

</a>

Deff 05.08.2012 20:28

<a class="highslide" href="#" 
onclick="a=this;return hs.htmlExpand(a, {  contentId:'highslide-html'} )">
при клике увеличивается

</a>

INDUK 05.08.2012 20:34

Нет этот тоже не катит проблема скорее в участке
{  contentId:'highslide-html'}


Кавычки не признает

INDUK 05.08.2012 20:42

А можно както подключить класс?

lord2kim 05.08.2012 20:45

INDUK,
<script>
var obj = {  contentId:'highslide-html' };
</script>
<a class="highslide" href="#"
onclick="return hs.htmlExpand(this, obj)">
при клике увеличивается
 
</a>

Deff 05.08.2012 20:45

INDUK,
Проблема - в том - что не передаётся this

<a class="highslide" href="#" 
onclick="abxzs244=this;return hs.htmlExpand(abxzs244, {  contentId:'highslide-html'} )">
при клике увеличивается

</a>

Попробуйте так

devote 05.08.2012 20:51

Цитата:

Сообщение от Deff
Проблема - в том - что не передаётся this

почему же? он жеж не сует вызов в функцию. this должен передаваться.. И вариант что он привел первым, вполне корректен, ошибка явно где то в другом месте.

Deff 05.08.2012 20:55

devote,
Там вызов через задержку анимации - поэтому и не передаётся

devote 05.08.2012 20:59

Цитата:

Сообщение от Deff
Там вызов через задержку анимации - поэтому и не передаётся

какая нахрен задержка, где она?
ну вызываю я:
hs.htmlExpand(this, {contentId: 'highslide-html'});
и хде тут задержка? там внутри функции чтоль? то что там внутри уже не важно, this я передал, а уж дальше никаких проблем при вызове не должно быть. У него просто что-то не правильно, происходит сбой или еще что.. смотреть в сторону консоли надо на ошибки.. И они явно не связаны с тем как была вызвана функция.

Deff 05.08.2012 21:02

Цитата:

Сообщение от devote
там внутри функции чтоль?

devote,
Типо
<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>

INDUK 05.08.2012 21:04

Нет задержек нет, дело в кавычках/конструкции, которая как-то не правильно интерпретируется движком престашоп или ее какойлибо частью.
Решил задачю так
<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' };


Знаю что через ж... но работает только так

devote 05.08.2012 21:11

Deff,
но у него то нет обертки в функцию, у него просто вызов метода, и никакой обертки. Понятно дело что оборачивая в функции нужно и контекст передавать.

devote 05.08.2012 21:12

INDUK,
а в чем сложность написать так:
<a class="highslide" href="#"
onclick="return hs.htmlExpand(this, {  contentId:&quot;highslide-html&quot;} )">
при клике увеличивается
 
</a>

Deff 05.08.2012 21:24

<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:&quot;highslide-html&quot;} )">
при клике увеличивается
 
</a>

oneguy 05.08.2012 21:35

HTML и XML ведь разрешают использовать одиночные кавычки без экранирование внутри значения атрибута, если оно взято в двойные кавычки - почему тогда тот код не работал? Мне самому интересно.

Deff 05.08.2012 21:37

oneguy,
если у него Пример в посту 14 - 1-й вариант (он себя в функции использует одиночные

vadim5june 05.08.2012 21:49

Цитата:

Сообщение от oneguy
Мне самому интересно

это каким то образом с движком prestashop связано-если кто работал

INDUK 06.08.2012 23:49

Цитата:

Сообщение от devote (Сообщение 194796)
INDUK,
а в чем сложность написать так:
<a class="highslide" href="#"
onclick="return hs.htmlExpand(this, {  contentId:&quot;highslide-html&quot;} )">
при клике увеличивается
 
</a>

Это совсем не сложно, однако не работает

devote 07.08.2012 01:02

Цитата:

Сообщение от INDUK
Это совсем не сложно, однако не работает

ну тогда сложно сказать что у вас там за движок такой, который портит выходные данные.

Deff 07.08.2012 01:14

INDUK,
:write:
<a class="highslide" href="#"
onclick='abxzs244=this;return hs.htmlExpand(abxzs244, {  contentId:"highslide-html"} )'>
при клике увеличивается
 </a>


Часовой пояс GMT +3, время: 22:18.