Jump to content
  • 0

Не выполняется функция


Ксеня
 Share

Question

Скажите,пожалуйста, почему функция может выполняться или нет? и от чего это зависит?

У меня проблема в том, что когда я тестирую функцию в пробном документе, она работает, стоит мне только вставить ее в нужное мне место, все перестает работать и обычно в ошибках пишется, что отсутствует объект.

Вот как бы сам код, так он работает, но в шаблоне работать отказывается. Заранее спасибо

 <html>

<head>
<title></title>
</head>

<body>
<script language="javascript">
<!--
function change_btn(status) {
var play = document.getElementById('play');
var stop = document.getElementById('stop');

if(status == '1') {
play.style.display = 'block';
stop.style.display = 'none';
} else if(status == '0') {
play.style.display = 'none';
stop.style.display = 'block';
}
}
//-->
</script>
<div id="play" style="padding: 0; margin: 0; display: block;"><button onclick="change_btn('0');" style="width: 30px;"><img src="play.gif" alt="play" align="center"></button></div>
<div id="stop" style="padding: 0; margin: 0; display: none;"><button onclick="change_btn('1');" style="width: 30px;"><img src="stop.gif" alt="stop" align="center"></button></div>

</body>

</html>

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

А в нужном месте

<div id="play" style="padding: 0; margin: 0; display: block;"><button onclick="change_btn('0');" style="width: 30px;"><img src="play.gif" alt="play" align="center"></button></div>
<div id="stop" style="padding: 0; margin: 0; display: none;"><button onclick="change_btn('1');" style="width: 30px;"><img src="stop.gif" alt="stop" align="center"></button></div>

Прописано?

Link to comment
Share on other sites

  • 0
А в нужном месте
<div id="play" style="padding: 0; margin: 0; display: block;"><button onclick="change_btn('0');" style="width: 30px;"><img src="play.gif" alt="play" align="center"></button></div>
<div id="stop" style="padding: 0; margin: 0; display: none;"><button onclick="change_btn('1');" style="width: 30px;"><img src="stop.gif" alt="stop" align="center"></button></div>

Прописано?

А что значит в нужном месте? где должны стоять эти дивы?

Link to comment
Share on other sites

  • 0

Ксения,вы конечно меня извините - но я не пойму что вы хотели:)

данный скрипт лишь показывает или скрывает нужную кнопку.вот и вс?:) что вам не нравится.

По-моему вы не понимаете что вы сами делаете,уж извините

Link to comment
Share on other sites

  • 0
Скажите,пожалуйста, почему функция может выполняться или нет? и от чего это зависит?

а) код не корректен

б) js в браузере отключен (-:

после строчек

		var play = document.getElementById('play');
var stop = document.getElementById('stop');

добавте

		window.alert(play + ',' + stop);

и напишите, что выводится в сообщении

а вообще алгоритм заведомо некорректен. надо переработать

Link to comment
Share on other sites

  • 0

По логике кода, одна кнопка должна прятаться, а вторая показываться - и так по очереди, т.е. видна только одна кнопка всегда. У меня в FF 1.5 все работает, ошибок в JS не выдается.

Link to comment
Share on other sites

  • 0
По логике кода, одна кнопка должна прятаться, а вторая показываться - и так по очереди, т.е. видна только одна кнопка всегда. У меня в FF 1.5 все работает, ошибок в JS не выдается.

Понимаете, в отдельности все работает. Проблема очевидно была в шаблоне. Когда я поместила скрипт в отдельный файл и затем уже в самом шаблоне подключила этот скрипт, все вроде заработало. А вроде потому что в IE так и не пашет. Вот такие дела

Link to comment
Share on other sites

  • 0

Ксеня

1. к моим советам Вы не прислушиваетесь (я просил написать, что выводится в сообщении)

2. алгоритм не корректен -- кнопка в данном случае должна быть одна и скрипт можно упростить (ИМХО конечно)

3. что за шаблон? куда Вы этот код пишите? где находятся в коде эти дивы и кнопки?

Вы не хотите чтобы я Вам помог? ...ну и ладно (-:

Link to comment
Share on other sites

  • 0
Ксеня

1. к моим советам Вы не прислушиваетесь (я просил написать, что выводится в сообщении)

2. алгоритм не корректен -- кнопка в данном случае должна быть одна и скрипт можно упростить (ИМХО конечно)

3. что за шаблон? куда Вы этот код пишите? где находятся в коде эти дивы и кнопки?

Вы не хотите чтобы я Вам помог? ...ну и ладно (-:

Извините за не прислушивание к советам. [object HTMLDivElement],[object HTMLDivElement]- вот что выводится в сообщении.

Код я упростила до простой замены кнопок в одном диве с помощью innerHTML, правда пока это работает только один раз, происходит только одна замена. Как упростить до одной кнопки пока еще не поняла, хотя подозреваю как.

Если честно краснею, что не прислушалась к советам сразу, да и вообще что такую простую вещь и не могу сделать.

Спасибо большое за советы.

P.S. Да еще, с шаблоном все в порядке. Разобралась.

Link to comment
Share on other sites

  • 0

приблизительный пример

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title></title>
<script type="text/javascript">
var playstopbtnstate = 0;
playStopBtnClick = function () {
var imgs = ['play.png', 'stop.png'];
var playstopbtn = document.getElementById('playstopbtn');
playstopbtnstate = playstopbtnstate == 0 ? 1 : 0;
playstopbtn.childNodes[0].src = imgs[playstopbtnstate];
}
</script>
</head>

<body>
<p>
<button id="playstopbtn" onclick="playStopBtnClick()"><img src="play.png" alt="" /></button>
</p>
</body>
</html>

Link to comment
Share on other sites

  • 0

Хм:

var play = 'none';
var stop = 'block';

// var play = 'image_play_alpha.gif';
// var stop = 'image_stop.gif';

function play_or_stop( element )
{
play = (play == 'none' ? 'block' : 'none');
stop = (stop == 'none' ? 'block' : 'none');

// play = (play == 'image_play_alpha.gif' ? 'image_play.gif' : 'image_play_alpha.gif');
// stop = (play == 'image_stop_alpha.gif' ? 'image_stop.gif' : 'image_stop_alpha.gif');

document.getElementById('play').style.display = play;
document.getElementById('stop').style.display = stop;

// document.getElementById('play').style.background = 'url('+play+') no-repeat';
// document.getElementById('stop').style.background = 'url('+stop+') no-repeat';
}

<div class="..." onclick="play_or_stop()" id="play"></div>
<div class="..." onclick="play_or_stop()" id="stop"></div>

Поидеи должно работать. не проверял.

закоментирован 2ой вариант. критика кода не приветствуется) писалось сонным человеком.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy