PDA

Показать полную графическую версию : Срабатывание по классу


l9396
20-10-2019, 12:37
Помогите пожалуйста разобраться, чтобы всплаывающее окно срабатывало по классу (div).
По img, a срабатывает, если поставить их вместо класса .category.

<script type="text/javascript">
var par = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
txt = new Array();
txt[0]="//link"
var b = Math.round(Math.random() * (txt.length - 1))
var ssilka = txt[b];
function Show666() {
cooki=navigator.cookieEnabled;
if(cooki)
{
scookie = GetCookie('kuka1');
if (scookie == null)
{
var ExpDate = new Date ();
ExpDate.setTime(ExpDate.getTime() + (1 * 600 * 1000));
SetCookie('kuka1','1',ExpDate, "/");
$(document).ready(function() {
$(".category").click(function() {
window.open(ssilka, "website", par)
});
});
}
}
}

function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return getCookieVal (j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } function SetCookie (name, value) { var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
document.onmouseup=Show666;
</script>

ProCoder
20-10-2019, 17:05
Вам нужно, чтобы окно открывалось при клике на любой div?

l9396
20-10-2019, 19:15
Наверное да, при любом.
Здесь еще в коде был txt[1] для открытия второй ссылки, но не срабатывало, может конечно хром блокировал, но вряд ли.

ProCoder
21-10-2019, 12:26
У меня срабатывает.

var par = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
$("div").click(function() {
window.open('//link', "website", par);
});

Если что, загляните в консоль. Может там есть что интересное...

l9396
21-10-2019, 18:43
В пустом месте нет проблем, а вот по классу заставить работать...

ProCoder
21-10-2019, 18:58
Точно также и по классу

<div class="classname">...</div>


$(".classname").click(function() { ... });

l9396
22-10-2019, 05:21
Т.е. выходит ничего менять и не нужно? Но не срабатывает.
UPD
срабатывает, но как-то через раз. Видимо хром блокирует. Но это ладно.

А есть идеи как грамотно распределить разные ссылки, срабатывание?
txt[0]="//link"
txt[1]="//link"
txt[2]="//link"

Сейчас только одна срабатывает.

ProCoder
22-10-2019, 14:51
Ссылки можете указать прям в разметке

<div class="classname" data-link="//site.ru">...</div>

и потом, при клике получать из атрибута data-link

$('.classname').click(function() {
var ssilka = $(this).attr('data-link');
if(ssilka) {
window.open(ssilka, 'website', par);
}
});

l9396
23-10-2019, 16:32
Спасибо.
Не затруднит вас скинуть полный код как это будет выглядеть? Дел много и пока нет времени вникнуть. Можно и в личку.

ProCoder
23-10-2019, 17:05
Вот рабочий пример

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<div class="classname" data-link="http://site1.ru">site 1</div>
<div class="classname" data-link="http://site2.ru">site 2</div>
<div class="classname" data-link="http://site3.ru">site 3</div>
<script>
var par = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
$('.classname').click(function() {
var ssilka = $(this).attr('data-link');
if(ssilka) {
window.open(ssilka, 'website', par);
}
});
</script>
</body>
</html>




© OSzone.net 2001-2012