Здравствуйте.
В первую очередь хочу выразить огромную благодарность моему другу Василию, который во многом мне помогает. Собственно, скрипт этот он писал.
______________________________________
У меня есть доска объявлений, анонсы которых отображаются в виде таблицы. Необходимо было сделать так, чтобы при клике в любом месте строки сайт отправлял на страницу с полным текстом материала.
Делать это путем модулей не стал - не хочется забивать сайт. Как это сделать через css не знаю.
1. Создаем текстовый файл.
2. Вставляем туда этот код:
function FollowingToLink(link)
{
if (link!== undefined)
window.location.href = $(link).attr("href");
}
function GetLink(element)
{
return $(element).children(".views-field-title").children("a")[0];
}
function RedirectToRow(row)
{
var link = GetLink(row);
FollowingToLink(link);
}
$(".view-display-id-products_page>.view-content>.views-table").delegate("tr.even", "click", function(eventArgs)
{
RedirectToRow(eventArgs.currentTarget);
});
$(".view-display-id-products_page>.view-content>.views-table").delegate("tr.odd", "click", function(eventArgs)
{
RedirectToRow(eventArgs.currentTarget);
});
});
3. Выбираем "сохранить как" и сохраняем с разрешением .js (ВАШЕ_НАЗВАНИЕ.js)
4. Заливаем скрипт в папку темы (у меня my_theme/js/script.js).
5. В .info файле темы подключаем скрипт: scripts[] = js/ВАШЕ_НАЗВАНИЕ.js
6. Чистим кэш на сайте.
_______________________________________________________________________
Чтобы скрипт у вас работал, ему нужно указать, к каким таблицам он должен применяться. В моем случае это:
$(".view-display-id-products_page>.view-content>.views-table").delegate("tr.even", "click", function(eventArgs)
и
$(".view-display-id-products_page>.view-content>.views-table").delegate("tr.odd", "click", function(eventArgs)
Здесь мы указываем на какой странице и какую таблицу использовать:
«.view-display-id-products_page>.view-content>.views-table» и «.view-display-id-products_page>.view-content>.views-table»,
а так же указываем классы тегов tr (строк): tr.even и tr.odd.
Следовательно, вам нужно сюда вписать свои значения.
Узнать это все легко через инспектора или firebug.
_______________________________________________________________________
Вот и все. Прошу прощения, если где то неправильно выразился и криво выразил свое решение.
Спасибо за внимание.
Вложение | Размер |
---|---|
1.png | 8.7 КБ |
Комментарии
Можно вариант с дата-атрибутом на tr - https://phuse.ca/clickable-table-rows-with-jquery/
Единственный минус - ссылки не получают функций браузера (открыть в новой вкладке, скопировать, сохранить). Но, имея знания, либо доступ в инет, можно дописать эти функции.
Вот тут описано, как прописать данные функции!