Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / javascript - переопределить событие клиентского (HTML) контрола / 22 сообщений из 22, страница 1 из 1
31.03.2006, 17:34
    #33638343
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
Други помогите - есть некий контрол (клиентский) у него прописан onclick = "некая javascript функция".
так вот, надо при нажатии на др. контрол (тоже клиентский) переопределить onclick = "другая javascript функция" первого контрола...
пробовал так:
Код: plaintext
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.
<script language="javascript" type="text/javascript">
// <![CDATA[

function Button1_onclick() {
    alert("click first!");
}

function AlertSecond () {
    alert("click second!");
}

function Button2_onclick() {
       document.getElementById("Button1").attributes("onclick") = "AlertSecond()";
}

// ]]>
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
        <input id="Button2" type="button" value="button" onclick="return Button2_onclick()" /></div>
    </form>
</body>
</html>
эта скотина пишет - Not Implemented...
P.S. как быть и что делать!? ;)
...
Рейтинг: 0 / 0
31.03.2006, 19:01
    #33638530
sergalex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
Попробуй так

document.getElementById('Button1').onclick = AlertSecond;

Можно юзать attachEvent но он дописывает обработчик поэтому вызовуться оба по очереди.
...
Рейтинг: 0 / 0
31.03.2006, 20:52
    #33638669
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
авторПопробуй так

document.getElementById('Button1').onclick = AlertSecond;

Можно юзать attachEvent но он дописывает обработчик поэтому вызовуться оба по очереди.
Спасибо - не помогло !!!... ;)
...
Рейтинг: 0 / 0
31.03.2006, 23:08
    #33638769
Просто Лось
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
Если честно, никогда не встречал реализации такой фичи... А так, буду банальным. Ты выдь подмену обработчика будешь выполнять в зависимости от каких-то параметров, так присвой их какому-нибудь контролу, или передай как аргументы функции, которая их сможет считать/получить и выполнить необходимые действия...

Извини, если я не правильно тебя понял...
...
Рейтинг: 0 / 0
01.04.2006, 00:11
    #33638805
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
всё очень правильно понял...
задача проста как электровеник:
собственно мне надо что бы по нажатию - контрол выполнил некую функцию, и потом забыл о существовании этой функции и стал по нажатию выполнять другую...
P.S. круто завернул ;) ?
Если есть, идеи поможите (желательно кодом) - а то я чего то тормозюююууу...
...
Рейтинг: 0 / 0
01.04.2006, 00:44
    #33638826
Просто Лось
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
Получается как-то так:
Код: plaintext
1.
2.
3.
...
onclick='return Button1_onclick();'
...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<script language = "javascript">

Button1_oncklick()
{
//обрабатываем даные/контролы и т.д. [a] - какое-то значение из результатов обработки

switch (a) 
{
case  1 :
         function1();
         breack;
case  2 :
         function2();
         breack;
case  3 :
         function3();
         breack;
default: // ну ты понял, если про что-то забыл
         function4();
         breack;
}
</script>
...
Рейтинг: 0 / 0
01.04.2006, 00:50
    #33638828
Просто Лось
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
не бейте ногами, с синтаксисом напутал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<script language = "javascript">

function Button1_oncklick()
{
//обрабатываем даные/контролы и т.д. [a] - какое-то значение из результатов обработки

switch (a) 
{
case  1 :
         function1();
         break;
case  2 :
         function2();
         break;
case  3 :
         function3();
         break;
default: // ну ты понял, если про что-то забыл
         function4();
         break;
}
</script>
...
Рейтинг: 0 / 0
01.04.2006, 01:27
    #33638838
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
Да спасибо огромное - так и надо, только я по другому сделал (тоже твой вариант)...
контрол лежит в <tr></tr> - вот на него я определил первое действие - потом вот такая заглушка (странная немного, но работает)
Код: plaintext
obj.setAttribute("onclick","");
а внутри этой строки (<tr></tr>) лежит основной контрол, который и выполняет дальнейшую (не первостепенную) функцию...
P.S. кстати, приглашаю позырить (и потестить) вот такую творческую сентенцию ;)
...
Рейтинг: 0 / 0
03.04.2006, 14:39
    #33641247
Galant
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
vladgrigсобственно мне надо что бы по нажатию - контрол выполнил некую функцию, и потом забыл о существовании этой функции и стал по нажатию выполнять другую...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<div id="d" onclick="Show();">aaa</div>
<input type=button value="test" onclick="d.onclick=DontShow;">
<script language=javascript>
function Show() {
	alert('Show');
}
function DontShow() {
	alert('DontShow');
}
</script>

Оно?
...
Рейтинг: 0 / 0
03.04.2006, 16:57
    #33641715
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
авторОно?
да так тоже проходит - но вот беда - я тебе в письме писал - там хитро как то - если просто функция (без параметров) то идёт, а если присандалить параметры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<div id="d" onclick="Show('show');">aaa</div>
<input type=button value="test" onclick="d.onclick=DontShow('don-t show');">

<script language=javascript>
function Show(str) {
	alert(str);
}
function DontShow(str) {
	alert(str);
}
</script>
то вилы с граблями обеспечены - Not Implemented...
P.S. как MS в своём дереве меняют PopulateNode('bla-bla-bla') после нажатия на ноду функцию на ToggleNode('bla-bla-bla') - ЗАГАДКА (неповерю что они удаляют родительскую ноду, а потом вставляют такую же, но с новым onclick)...
P.S. вопрос остался открытым для меня ;)
...
Рейтинг: 0 / 0
04.04.2006, 11:29
    #33642885
leo Resh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
vladgrig авторОно?
да так тоже проходит - но вот беда - я тебе в письме писал - там хитро как то - если просто функция (без параметров) то идёт, а если присандалить параметры:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<div id="d" onclick="Show('show');">aaa</div>
<input type=button value="test" onclick="d.onclick=DontShow('don-t show');">

<script language=javascript>
function Show(str) {
	alert(str);
}
function DontShow(str) {
	alert(str);
}
</script>
то вилы с граблями обеспечены - Not Implemented...
P.S. как MS в своём дереве меняют PopulateNode('bla-bla-bla') после нажатия на ноду функцию на ToggleNode('bla-bla-bla') - ЗАГАДКА (неповерю что они удаляют родительскую ноду, а потом вставляют такую же, но с новым onclick)...
P.S. вопрос остался открытым для меня ;)

Вилы с граблями вот почему.
Когда ты пишешь
Код: plaintext
d.onclick=DontShow('don-t show');
то это присвоение обработчику события onclick объекта d грубо говоря указателя на функцию DontShow. Т.е. в правой части - просто идентификатор функции. И параметры тут совсем не при чем.
...
Рейтинг: 0 / 0
04.04.2006, 11:51
    #33642979
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
авторто это присвоение обработчику события onclick объекта d грубо говоря указателя на функцию DontShow. Т.е. в правой части - просто идентификатор функции. И параметры тут совсем не при чем.
Спасибо за разумные объяснения - мне теперь с этим знанием жить стало легче... ;)
Если не понятен вопрос - попробую показать на примере
вот такое - дерево (это не реклама, просто более подходящего примера пока нет).
При его первой загрузке наводим курсор на любую ноду - видим в статусбаре следующую надпись javascript:TreeView_PopulateNode('bla-bla-bla')
Нажимаем на ноду (раскрываем её) - теперь наводим на неё курсор и смотрим в статусбар - как не удивительно, произошла смена надписи... ;) теперь там написано javascript:TreeView_ToggleNode('bla-bla-bla')
Склонен думать что при нажатии на ноду произошло какое то событие после которого обработчик нажатия поменялся на другую функцию...
Внимание вопрос: как заставить обработчик выполнять сперва одну функцию, а потом поменять в обработчике эту функцию на другую (с параметрами)???!!!
...
Рейтинг: 0 / 0
04.04.2006, 12:02
    #33643042
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
А почему бы просто не использовать одну функцию с одним параметром (к примеру), состоящим из нескольких значений, разделенных каким-нибудь особым символом? А потом в обработчике парсить этот параметр на составляющие и выполнять определенный кусок кода.
...
Рейтинг: 0 / 0
04.04.2006, 12:11
    #33643080
Vodya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
Странный пример...
Нажимаеш дерево раскрывается а снизу его "закрытая" копия появляется.
И чем дальше тем больше копий.
...
Рейтинг: 0 / 0
04.04.2006, 12:31
    #33643172
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
авторСтранный пример...
Нажимаеш дерево раскрывается а снизу его "закрытая" копия появляется.
И чем дальше тем больше копий.
автор(это не реклама, просто более подходящего примера пока нет).

P.S. странный пост - главное по теме ;)
...
Рейтинг: 0 / 0
04.04.2006, 12:51
    #33643255
leo Resh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
Если смотрим в статусбар, наведя мышку на ссылку, то видим, что у ней в атрибуте href. Обработчик onckick опять же не при чем.
...
Рейтинг: 0 / 0
04.04.2006, 12:57
    #33643275
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
vladgrigДруги помогите - есть некий контрол (клиентский) у него прописан onclick = "некая javascript функция".
так вот, надо при нажатии на др. контрол (тоже клиентский) переопределить onclick = "другая javascript функция" первого контрола...
пробовал так:
Код: plaintext
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.
<script language="javascript" type="text/javascript">
// <![CDATA[

function Button1_onclick() {
    alert("click first!");
}

function AlertSecond () {
    alert("click second!");
}

function Button2_onclick() {
       document.getElementById("Button1").attributes("onclick") = "AlertSecond()";
}

// ]]>
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
        <input id="Button2" type="button" value="button" onclick="return Button2_onclick()" /></div>
    </form>
</body>
</html>
эта скотина пишет - Not Implemented...
P.S. как быть и что делать!? ;)
http://www.gotdotnet.ru/Forums/Web/288479.aspx#288537
...
Рейтинг: 0 / 0
04.04.2006, 12:59
    #33643289
leo Resh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
leo ReshЕсли смотрим в статусбар, наведя мышку на ссылку, то видим, что у ней в атрибуте href. Обработчик onckick опять же не при чем.
onckick читать как onclick
Очипятка вышла :-)
...
Рейтинг: 0 / 0
04.04.2006, 14:20
    #33643576
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
To ЕвгенийВ:
ОГРОМНОЕ СПАСИБО - ЭТО ОНО!!!
...
Рейтинг: 0 / 0
04.04.2006, 15:11
    #33643768
Galant
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
vladgrig To ЕвгенийВ:
ОГРОМНОЕ СПАСИБО - ЭТО ОНО!!!

Хм... А у меня чавой-то "Not Implemented" при клике на Button2... IE 6.0.2800
...
Рейтинг: 0 / 0
04.04.2006, 15:30
    #33643840
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
To Galant:
в принципе, мне не нужны были две кнопки - нужна была одна (в примере две для доходчивости моих желаний)...
вот мои изыскания после ссылки ЕвгенийВ:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<script language="javascript" type="text/javascript">
// <!CDATA[

function Button1_onclick(obj) {
  alert("first");
  var str = "second";
  str = "second('" + str + "')";
  obj.onclick = new Function(str);
}
function second(str) {
    alert(str);
}


// ]]>
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="Button1" type="button" value="button" onclick="return Button1_onclick(this)" /></div>
    </form>
</body>
</html>
нормально работает - и, как раз, то что было надо...
...
Рейтинг: 0 / 0
04.04.2006, 15:35
    #33643869
Galant
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javascript - переопределить событие клиентского (HTML) контрола
Да, работает.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / javascript - переопределить событие клиентского (HTML) контрола / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]