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

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

25.02.2010, 21:45. Показов 25482. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru