Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2011, 20:05
Аспирант
Отправить личное сообщение для jsuse Посмотреть профиль Найти все сообщения от jsuse
 
Регистрация: 10.04.2010
Сообщений: 92

Функция не позволяет остаться элементу на странице. Почему?
В этом разделе учебника http://beta.javascript.ru/tutorial/modifying-document есть такой код. Это добавление элемента на страницу.

<body>
<div>
  ...
</div>

<script>

  var parentElem = document.body.children[0];

  var newDiv = document.createElement('div');
  newDiv.innerHTML = 'Привет, мир!';

parentElem.insertBefore(newDiv, parentElem.firstChild);

</script>
</body>


Так, как написан, он работает как надо. Но если его оформить в функцию, то добавленный элемент появляется и тут же пропадает. Будто страница загружается заново. Почему? Функция как-то влияет? Код такой:

<body>

<div>
  ...
</div>

<script>

function f() {

  var parentElem = document.body.children[0];

  var newDiv = document.createElement('div');
  newDiv.innerHTML = 'Привет, мир!';

parentElem.insertBefore(newDiv, parentElem.firstChild);
}

</script>

<a href="" onclick="f()">Нажать</a>

</body>
Ответить с цитированием
  #2 (permalink)  
Старый 09.11.2011, 20:16
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Сообщение от jsuse
<a href="" onclick="f(); return false;">Нажать</a>
Происходит переход по ссылке
Ответить с цитированием
  #3 (permalink)  
Старый 09.11.2011, 20:26
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

return false надо разместить в конце функции f.

function f() {

  var parentElem = document.body.children[0];

  var newDiv = document.createElement('div');
  newDiv.innerHTML = 'Привет, мир!';

  parentElem.insertBefore(newDiv, parentElem.firstChild);

  return false;

}
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #4 (permalink)  
Старый 09.11.2011, 22:03
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Разница в чём?!
Ответить с цитированием
  #5 (permalink)  
Старый 09.11.2011, 22:49
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Так красивее ))
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 09.11.2011 в 22:52.
Ответить с цитированием
  #6 (permalink)  
Старый 09.11.2011, 23:47
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

про return false;
http://javascript.ru/tutorial/events...z-obrabotchika
Ответить с цитированием
  #7 (permalink)  
Старый 10.11.2011, 00:35
Аспирант
Отправить личное сообщение для jsuse Посмотреть профиль Найти все сообщения от jsuse
 
Регистрация: 10.04.2010
Сообщений: 92

Сообщение от DjDiablo Посмотреть сообщение
Так красивее ))
Что интересно, разница есть. Работает, когда именно вот так:

<a href="" onclick="f(); return false;">Нажать</a>


А когда вставляешь в саму функцию в конце, то не работает, опять перегружается. С чем это может быть связано?
Ответить с цитированием
  #8 (permalink)  
Старый 10.11.2011, 00:44
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

если в функции, то вот так
<a href="" onclick="return f();">Нажать</a>
Ответить с цитированием
  #9 (permalink)  
Старый 10.11.2011, 10:22
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от jsuse Посмотреть сообщение
Что интересно, разница есть. Работает, когда именно вот так:

<a href="" onclick="f(); return false;">Нажать</a>
...
Лучше вообще в тегах не добавляй обработчики событий, а в отдельном скрипте и пользуйся библиотеками для надежности.
Ответить с цитированием
  #10 (permalink)  
Старый 10.11.2011, 10:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Pavel M.
и пользуйся библиотеками для надежности
Могут скрипты потыбзить?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему функция срабатывает один раз? Bogdan808 Javascript под браузер 4 06.09.2010 23:41
Почему не работает функция js? oliwin Общие вопросы Javascript 2 11.07.2010 13:16
Почему не работает функция? Vitaly jQuery 10 31.07.2009 17:01
Функция не возвращает false, почему? Vitaly jQuery 3 05.07.2009 16:05