Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как изменить onclick="box()"?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Как изменить onclick="box()"?
Ромчик
Отправлено: 03 Августа, 2012 - 17:17:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




Как изменить onclick="box()"? К примеру чтобы изменить стиль элемента мы используем код:
PHP:
скопировать код в буфер обмена
  1. var el = document.getElementById("box");
  2. el.style.cssText="стиль";

А как изменить onclick="box()" на onclick="box1()" в том же элементе?

(Отредактировано автором: 03 Августа, 2012 - 17:20:25)

 
 Top
Hawkmoth
Отправлено: 03 Августа, 2012 - 17:21:14
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. document.getElementById('box').onclick=function(){
  2.  //что-то новое
  3. }
 
 Top
Ромчик
Отправлено: 03 Августа, 2012 - 17:23:35
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




Hawkmoth, ок спасибо. А просто заменить нельзя? Лучше же вызывать функцию вверху тела, чем вписывать её в div.

(Отредактировано автором: 03 Августа, 2012 - 17:28:12)

 
 Top
IllusionMH
Отправлено: 03 Августа, 2012 - 18:01:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Ромчик пишет:
Hawkmoth, ок спасибо. А просто заменить нельзя? Лучше же вызывать функцию вверху тела, чем вписывать её в div.

Ромчик, что вы хотите этим сазать?
1) Заменить можно в разметке(изменить название функции) либо оправить код функции в JS.
Из JS можно просто переназначить обработчик.
2) Скрипты вызываются либо в head, либо в конце body, но точно не не в начале.
Чтобы вызвать скрипт в head при том, что данного элемента на странице еще не существует, нужно производить это действие по событию загрузки страницы
CODE (javascript):
скопировать код в буфер обмена
  1. window.onload = function() {
  2.   document.getElementById('box').onclick=function(){
  3.     //что-то новое
  4.   };
  5. };
 
 Top
Ромчик
Отправлено: 03 Августа, 2012 - 18:09:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




IllusionMH, мде. Зачем объяснять то что я знаю?
 
 Top
Hawkmoth
Отправлено: 03 Августа, 2012 - 18:27:09
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Если я правильно понял, то

Если функция заранее предопределена

(Отредактировано автором: 03 Августа, 2012 - 18:35:11)

 
 Top
LIME
Отправлено: 03 Августа, 2012 - 18:30:38
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Hawkmoth так же нельзя
так будет присваиваться возвращаемое значение
(Добавление)
тоесть будет вызов и отработка ф-ции
Ромчик ты и сейчас нихрена не понял...что ты знал?
 
 Top
Hawkmoth
Отправлено: 03 Августа, 2012 - 18:35:56
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




LIME пишет:
Hawkmoth так же нельзя
так будет присваиваться возвращаемое значение

десссвитно

тогда не знаю Улыбка
(Добавление)
в jquery для подобного есть функции bind и unbind, но я ими не пользовался, не знаю
 
 Top
LIME
Отправлено: 03 Августа, 2012 - 18:41:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




да вполне правильное первое решение
+ поправка IllusionMH
но если эту тему развивать то типа такого
CODE (javascript):
скопировать код в буфер обмена
  1. var box1=function(){//.....
  2. }
  3. document.getElementById('box').onclick=box1;
хотя так пока не извращался))
(Добавление)
Hawkmoth они сейчас деприкатед
пользовать надо .on теперь
(Добавление)
ой нет)) не так понял)) тут bind конечно
 
 Top
IllusionMH
Отправлено: 03 Августа, 2012 - 19:00:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Ромчик, как спросили так и ответил.
Не вижу проблем с переприсвоением(можно и все оставить) функции, если HTML поправить не судьба.
 
 Top
vectorserver
Отправлено: 03 Августа, 2012 - 20:03:32
Post Id



Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Нояб. 2011  


Помог: 3 раз(а)




Вот могу показать пример с помощью jQuery, рабочий пример: http://www[dot]convex-tagil[dot]ru/test_all/box.php
CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript" src="http://yandex.st/jquery/1.7.2/jquery.min.js"></script>
  2. <script>
  3. $(function(){
  4.         $('#content,#content2').toggle(function() {
  5.                         $(this).attr('onclick','box()');
  6.                         $('textarea').html('<a onclick="box()" id="content">Click me!</a>')
  7.                 },function() {
  8.                         $(this).attr('onclick','box2()');
  9.                         $('textarea').html('<a onclick="box2()" id="content">Click me!</a>')
  10.                 });
  11. });
  12. </script>


CODE (html):
скопировать код в буфер обмена
  1. <a href="#" id="content">Click me!</a>
  2. <textarea cols="80"></textarea>
 
 Top
Ромчик
Отправлено: 03 Августа, 2012 - 21:25:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




Ребята успокойтесь, все ваши методы полный бред, я уже нашёл стандартную функцию.

(Отредактировано автором: 03 Августа, 2012 - 21:26:35)

 
 Top
LIME
Отправлено: 03 Августа, 2012 - 21:26:58
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




АААхахаха
и какую??? Ха-ха
 
 Top
Ромчик
Отправлено: 03 Августа, 2012 - 21:28:38
Post Id



Частый гость


Покинул форум
Сообщений всего: 171
Дата рег-ции: Март 2012  


Помог: 0 раз(а)




LIME, setAttribute();

(Отредактировано автором: 03 Августа, 2012 - 21:30:41)

 
 Top
LIME
Отправлено: 03 Августа, 2012 - 21:32:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




непонятно чем это лучше и зачем результат в переменную пихать
и надеюсь это лежит в конце документа иначе могут сбои быть
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB