Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/129: Рейтинг темы: голосов - 129, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 4

не работает onClick="window.location.href...

25.02.2010, 21:45. Показов 25426. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет, в IE и Mozilla не работает функция onClick

i.onClick="window.location.href='page.ph p?id='+id;"

полный код:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
var slideShow=function(){
    var bxs,bxe,fxs,fxe,ys,ye,ta,ia,ie,st,ss,ft,fs,xp,yp,ci,t,tar,tarl;
    ta=document.getElementById(thumbid); ia=document.getElementById(imgid);
    t=ta.getElementsByTagName('li'); ie=document.all?true:false;
    st=3; ss=3; ft=10; fs=5; xp,yp=0;
    return{
        init:function(){
            document.onmousemove=this.pos; window.onresize=function(){setTimeout("slideShow.lim()",500)};
            ys=this.toppos(ta); ye=ys+ta.offsetHeight;
            len=t.length;tar=[];
            for(i=0;i<len;i++){
                var id=t[i].value; tar[i]=id;
                t[i].onclick=new Function("slideShow.getimg('"+id+"')");
                if(i==0){this.getimg(id)}
            }
            tarl=tar.length;
        },
        scrl:function(d){
            clearInterval(ta.timer);
            var l=(d==-1)?0:(t[tarl-1].offsetLeft-(ta.parentNode.offsetWidth-t[tarl-1].offsetWidth)+10)
            ta.timer=setInterval(function(){slideShow.mv(d,l)},st);
        },
        mv:function(d,l){
            ta.style.left=ta.style.left||'0px';
            var left=ta.style.left.replace('px','');
            if(d==1){
                if(l-Math.abs(left)<=ss){
                    this.cncl(ta.id); ta.style.left='-'+l+'px';
                }else{ta.style.left=left-ss+'px'}
            }else{
                if(Math.abs(left)-l<=ss){
                    this.cncl(ta.id); ta.style.left=l+'px';
                }else{ta.style.left=parseInt(left)+ss+'px'}
            }
        },
        cncl:function(){clearTimeout(ta.timer)},
        getimg:function(id){
            if(auto){clearTimeout(ia.timer)}
            if(ci!=null){
                var ts,tsl,x;
                ts=ia.getElementsByTagName('img'); tsl=ts.length;x=0;
                for(x;x<tsl;x++){
                    if(ci.id!=id){var o=ts[x]; clearInterval(o.timer); o.timer=setInterval(function(){slideShow.fdout(o)},fs)}
                }
            }
            if(!document.getElementById(id)){
                var i=document.createElement('img');
                ia.appendChild(i);
                i.id=id; i.av=0; i.style.opacity=0;
                i.style.filter='alpha(opacity=0)';
                i.src=imgdir+'/'+id+imgext;
                i.onClick="window.location.href='page.php?id='+id;"
            }else{
                i=document.getElementById(id); clearInterval(i.timer);
            }
            i.timer=setInterval(function(){slideShow.fdin(i)},fs);
        },
        nav:function(d){
            var c=0;
            for(key in tar){if(tar[key]==ci.id){c=key}}
            if(tar[parseInt(c)+d]){
                this.getimg(tar[parseInt(c)+d]);
            }else{
                if(d==1){
                    this.getimg(tar[0]);
                }else{this.getimg(tar[tarl-1])}
            }
        },
        auto:function(){ia.timer=setInterval(function(){slideShow.nav(1)},autodelay*1000)},
        fdin:function(i){
            if(i.complete){i.av=i.av+fs; i.style.opacity=i.av/100; i.style.filter='alpha(opacity='+i.av+')'}
            if(i.av>=100){if(auto){this.auto()}; clearInterval(i.timer); ci=i}
        },
        fdout:function(i){
            i.av=i.av-fs; i.style.opacity=i.av/100;
            i.style.filter='alpha(opacity='+i.av+')';
            if(i.av<=0){clearInterval(i.timer); if(i.parentNode){i.parentNode.removeChild(i)}}
        },
        lim:function(){
            var taw,taa,len; taw=ta.parentNode.offsetWidth; taa=taw/4; 
            bxs=slideShow.leftpos(ta); bxe=bxs+taa; fxe=bxs+taw; fxs=fxe-taa;
        },
        pos:function(e){
            xp=ie?event.clientX+document.documentElement.scrollLeft:e.pageX; 
            yp=ie?event.clientY+document.documentElement.scrollTop:e.pageY;
            if(xp>bxs&&xp<bxe&&yp>ys&&yp<ye){
                slideShow.scrl(-1);
            }else if(xp>fxs&&xp<fxe&&yp>ys&&yp<ye){
                slideShow.scrl(1);
            }else{slideShow.cncl()}
        },
        leftpos:function(t){
            var l=0;
            if(t.offsetParent){
                while(1){l+=t.offsetLeft; if(!t.offsetParent){break}; t=t.offsetParent}
            }else if(t.x){l+=t.x}
            return l;
        },
        toppos:function(t){
            var p=0;
            if(t.offsetParent){
                while(1){p+=t.offsetTop; if(!t.offsetParent){break}; t=t.offsetParent}
            }else if(t.y){p+=t.y}
            return p;
        }
    };
}();
 
window.onload=function(){slideShow.init(); slideShow.lim()};
Добавлено через 14 минут
нашел ответ:

JavaScript
1
2
3
4
i.onclick= function(){ 
  location.href='page.php?id='+id; 
  //id должна быть глобальной переменной 
}
Добавлено через 2 часа 22 минуты
только возникла другая проблема, кто знает?
почему ID может быть только цифровое?...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2010, 21:45
Ответы с готовыми решениями:

открыть 2 новые вкладки onclick="window.location.href=
Всем привет. Не могу сделать, чтобы 2 новые вкладки открывались при нажатии на ссылку.. Вот код &lt;a class=&quot;arhiveButton&quot;...

не работает window.location.href в chrome
Здравствуйте. Подскажите, пожалуйста, в чем проблема: в chrome не работает window.location.href data = &quot;h1;All Questions&quot;; ...

Window.location.href как внести
Доброго времени суток еще раз. после предыдущей темы.( напомню, какую задачу я себе поставил, есть неполный url, который дополняется...

4
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
25.02.2010, 22:46
Цитата Сообщение от tima2010 Посмотреть сообщение
почему ID может быть только цифровое?...
А откуда такая уверенность, что оно могет быть только цифровое?
0
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 4
26.02.2010, 07:27  [ТС]
Верхний код это файл slide.js, есть еще коды:

css:
CSS
1
2
3
4
5
6
#image {position:relative; width:896px; height:260px; padding:5px; background:#FFF url(../images/loading.gif) center center no-repeat}
#image img {position:absolute; top:5px; left:5px; margin:0; padding:0}
.imgnav {position:absolute; height:200px; z-index:100; height:200px; width:20%; z-index:100; outline:none; cursor:pointer; margin:0; padding:0}
#thumbs {list-style:none; margin:0; padding:0}
#previmg {left:0; background:url(../images/left.png) left center no-repeat; border-left:5px solid #FFF}
#nextimg {right:0; background:url(../images/right.png) right center no-repeat; border-right:5px solid #FFF}
и код вывода:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div id="image">
    <a href="javascript:slideShow.nav(-1)" class="imgnav " id="previmg"></a>
    <a href="javascript:slideShow.nav(1)" class="imgnav " id="nextimg"></a>
</div>
 
<ul id="thumbs">
    <li value="1"></li>
    <li value="2"></li>
</ul>
 
<script type="text/javascript">
var imgid = 'image';
var imgdir = 'slide';
var imgext = '.jpg';
var thumbid = 'thumbs';
var auto = true;
var autodelay = 5;
</script>
<script type="text/javascript" src="js/slide.js"></script>
все вместе это дает слайд шоу...
где
HTML5
1
2
    <li value="1"></li>
    <li value="2"></li>
1 и 2 эот названия файлов, если их назваьт буквенно то он не будет отоборажать этот файл вот в чем загвоздка...
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
26.02.2010, 11:22
Скрипт, видимо, так и задумывался, чтобы понимать только числа..

Если хотите, чтобы буквы тоже понимал, то исправьте строку (12):
JavaScript
1
var id=t[i].value; tar[i]=id;
на:
JavaScript
1
var id=t[i].getAttribute('value'); tar[i]=id;
А также строки (61-62):
JavaScript
1
2
if(tar[parseInt(c)+d]){
    this.getimg(tar[parseInt(c)+d]);
на:
JavaScript
1
2
if(tar[c+d]){
   this.getimg(tar[c+d]);
Проверял в IE, O, FF

Добавлено через 1 минуту
Единственно я не понял: слайд-шоу должно все время работать (вне зависимости от действий юзера)?
1
0 / 0 / 0
Регистрация: 25.02.2010
Сообщений: 4
26.02.2010, 17:49  [ТС]
да оно должно все время работать а что то не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2010, 17:49
Помогаю со студенческими работами здесь

Переходы на сайте через window.location.href
Подскажите пожалуйста, делаю переходы на сайте через js window.location.href = &quot;$_url&quot;; Выходит следующее, захожу в каталог...

Ошибка при редиректе (window.location.href)?
Здравствуйте! Есть код: var val = '&lt;?php echo $sdf; ?&gt;'; var ec = new flo({}); getC(0); function getC(dont){ ...

onClick="location.href='....'" как это сделать в IE5?
Помогите!!!!!!!!!!! Нужно чтобы сработала такая конструкция &lt;a href='#' onClick='location.href='ссылка''&gt; click here! &lt;/a&gt; ...

Не работает window.location
Вот пример кода: &lt;script language=&quot;JavaScript&quot;&gt; function selectChange() { alert(&quot;Переход&quot;); window.location =...

Ссылка onclick="location.href" не поддерживает required? Чем заменить required?
Всем привет. Хотел реализовать переход с формы на другую страницу с помощью onclick=&quot;location.href&quot;, с обязательной проверкой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru