Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Переход по внутренней ссылке через onClick (https://javascript.ru/forum/events/57072-perekhod-po-vnutrennejj-ssylke-cherez-onclick.html)

plyushchev 17.07.2015 18:43

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

Есть код, я его весь выкладывать не буду, а только суть:

Код:

$jsq = '
jQuery(this).append("<div class=\'quick_btn\' onClick =\'quick_btn("+my_product_id+")\'><i class=\'icon-eye-open\'></i>"+show_quicktext+"</div>");
';

Здесь при событии onсlick выполняется функция quick_btn(), которая принимает переменную в виде id товара. Функция создает новое окно быстро просмотра для этого товара.

Я пытаюсь сделать так, чтобы новое окно не создавалось, а просто, при событии onclick пользователь переходил на страницу товара.

Перелопатил ваши учебники, форум, но единснтвенное до чего допёр, это дать событию выполнить функцию location.href=link; где link - это внутренняя ссылка на товар. Но оказалось location.href переходит только по внешним ссылкам((

Можете подсказать как сделать, чтобы переходило по внутренней ссылке? Или на крайняк скажите где копать, пожалуйста)

kostyanet 17.07.2015 20:18

Цитата:

Сообщение от plyushchev
чтобы переходило по внутренней ссылке

На id элемента что ли? Закиньте его в хэш: location.hash=id

plyushchev 18.07.2015 13:05

Нет, немного не то.
Хеш добавляет id к внешней ссылке. Получается часть внешней ссылки и часть внутренней.

Мне надо чтобы переходило как в html с тегом <a...
Попробую объяснить лучше:

Вот внутренняя ссылка на карточку товара:
index.php?option=com_virtuemart&view=category&virtuemart_category_id=88


А вот внешняя:
http://jeweltree.loc/index.php/en/dlya-nee/bracelets/boccadamo-26-detail


location как я понял работает только с внешними. Так как при событии onclick перейти по внутренней?

kostyanet 18.07.2015 18:58

Бред какой-то.

Вы называете "внутренними" - относительные адреса, а "внешними" - абсолютные. Локейшн должен работать с обоими. Просто в первом случае будет переход на указанную страницу этого же домена (сайта), а во втором - на тот конкретный.

Внутренние адреса - это те самые хеши (букмарки) и ничего другого.

С терминологией разобрались, теперь что у вас там не работает?

plyushchev 18.07.2015 23:55

Вложений: 1
Прошу прощения за непонятный язык.)

У меня не получается вот это:

onclick="window.location.href='<?php echo JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$this->product->virtuemart_category_id); ?>'"


Впихнуть вот сюда:

(кстати, $this->product->virtuemart_category_id это и есть my_product_id)

plyushchev 18.07.2015 23:56

Если в php и css я хоть немного разобрался, то здесь я вообще не пойму что написано, кроме того, что onclick вызывает функцию, которая лежит в *.js

kostyanet 19.07.2015 08:39

Цитата:

Сообщение от plyushchev
У меня не получается вот это:

В смысле за вас надо кавычки оформить обратными косыми?

Чтобы запихнуть в текст (скаляр) который отождествляется кавычками текст с кавычками надо их все обозначать \

' onclick="window.location.href=\'<?php echo JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$this->product->virtuemart_category_id); ?>\'" <'

plyushchev 19.07.2015 17:39

Вложений: 1
Наверное в это трудно проверить, но я уже не первый день пытаюсь правильно оформить ковычки. Не знаю, никак не получается(

Вот, единственное более менее логичное оформление, и не работает

kostyanet 20.07.2015 07:35

Цитата:

ковычки
Кто слов не знает тот пишет как слышит. Доводилось ли вам слышать как говорят "ковычки"? Не могли бы вы раскрыть тайну умозаключений которые приводят к такому правописанию, когда вы подставляете букву, которой вообще не слышно?

Что получается - то видно в хтмле. Открывайте код страницы и проверяйте как получилось.

plyushchev 20.07.2015 17:32

Никакой тайны нет - на такие пустяки я просто не обращаю внимания, сосредотачиваясь на другом._) Или это претензия?

Но ведь в коде страницы пишется точно так же, как я показывал


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