Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Срабатывание по классу (http://forum.oszone.net/showthread.php?t=342604)

l9396 20-10-2019 12:37 2892855

Срабатывание по классу
 
Помогите пожалуйста разобраться, чтобы всплаывающее окно срабатывало по классу (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 2892885

Вам нужно, чтобы окно открывалось при клике на любой div?

l9396 20-10-2019 19:15 2892899

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

ProCoder 21-10-2019 12:26 2892973

У меня срабатывает.
Код:

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 2893022

В пустом месте нет проблем, а вот по классу заставить работать...

ProCoder 21-10-2019 18:58 2893027

Точно также и по классу
HTML код:

<div class="classname">...</div>
Код:

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

l9396 22-10-2019 05:21 2893062

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

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

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

ProCoder 22-10-2019 14:51 2893105

Ссылки можете указать прям в разметке
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);
        }
});


l9396 23-10-2019 16:32 2893231

Спасибо.
Не затруднит вас скинуть полный код как это будет выглядеть? Дел много и пока нет времени вникнуть. Можно и в личку.

ProCoder 23-10-2019 17:05 2893240

Вот рабочий пример
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.

Время: 07:10.
© OSzone.net 2001-