-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
Срабатывание по классу
Помогите пожалуйста разобраться, чтобы всплаывающее окно срабатывало по классу (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>
|
Вам нужно, чтобы окно открывалось при клике на любой div?
|
Наверное да, при любом.
Здесь еще в коде был txt[1] для открытия второй ссылки, но не срабатывало, может конечно хром блокировал, но вряд ли.
|
У меня срабатывает.
Код:
var par = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
$("div").click(function() {
window.open('//link', "website", par);
});
Если что, загляните в консоль. Может там есть что интересное...
|
В пустом месте нет проблем, а вот по классу заставить работать...
|
Точно также и по классу
HTML код:
<div class="classname">...</div>
Код:
$(".classname").click(function() { ... });
|
Т.е. выходит ничего менять и не нужно? Но не срабатывает.
UPD
срабатывает, но как-то через раз. Видимо хром блокирует. Но это ладно.
А есть идеи как грамотно распределить разные ссылки, срабатывание?
txt[0]="//link"
txt[1]="//link"
txt[2]="//link"
Сейчас только одна срабатывает.
|
Ссылки можете указать прям в разметке
HTML код:
<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);
}
});
|
Спасибо.
Не затруднит вас скинуть полный код как это будет выглядеть? Дел много и пока нет времени вникнуть. Можно и в личку.
|
Вот рабочий пример
HTML код:
<!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>
|
Время: 07:10.
© OSzone.net 2001-