Вопрос по OnClick

1. Станислав 04.11.2011 / 11:59
Как я уже неоднократно говорил, не особо я разбираюсь в клиентских технологиях...
Собственно, вопрос:
Есть у меня ява-скрипт, к примеру, который выводит на страницу плеер.
Однако, мне не надо, чтобы он был сразу выведен. Хочу сделать кнопку, при нажатии на которую выводился бы тот самый javascript. Как это сделать?
З.Ы. Гуглить не получается, в силу адского похмелья и плохосоображающей головы D
Ах да, ещё дополнение такое: при нажатии на эту кнопку надо не только, чтобы выводился яваскрипт, то и скрывалась та самая кнопка =)
Хотя нет, лучше, чтобы не скрывалась, а заменялась на другую =)

2. ктулху 04.11.2011 / 12:02
Нуу... собственно нужно сделать функцию, которая будет это делать. а onClick должен вызывать эту функцию.

3. Станислав 04.11.2011 / 12:05
2. ShiftBHT, ну, это я понимаю =) Я не знаю яваскрипт, в принципе =)))

В общем, чтобы было более наглядно:
<li onClick="uppodSend('audioplayer1','play');" title="Пуск"><img src="картинка-1"></li>

Эта фигня запускает плеер.
Так вот, надо, чтобы при клике выводился яваскрипт, play менялся на pause, а картинка-1 заменялась на картинка-2. Вооооот =)

4. ктулху 04.11.2011 / 12:07
Я из JS знаю только как расшифровывается абривеатура =) ну и так, по мелочи. Ждём Мегабита... он тут спец по client-side

5. Станислав 04.11.2011 / 12:09
Ну всё, придётся ждать =)

6. ramzes 04.11.2011 / 13:08
блин туплю спросонья. чистый js нужен или jquery можно?

7. Алексей 04.11.2011 / 13:29
если правильно понял то на onclick вешаеш
 document.getElementById('element.id').style.display='block';this.style.display='none';
и контейнер плеера по умолчанию в display=none;

8. Станислав 04.11.2011 / 13:42
ramzes (4 Ноября 2011 / 15:08)
блин туплю спросонья. чистый js нужен или jquery можно?
можно и jquery.
7. megabit, не, не то.
В 3 посте конкретней расписал, что именно нужно =)

9. Алексей 04.11.2011 / 13:47
8. SNELS, аа чтобы Пуск был Стоп и.т.п?
простой вариант
<li onClick="uppodSend('audioplayer1','play');this.style.display='none';getElementById('stop').style.display='block';" title="Пуск" id="start"><img src="картинка-1"></li>
<li onClick="uppodSend('audioplayer1','pause');this.style.display='none';getElementById('start').style.display='block';" title="Пауза" style="display:no ne;" id="stop"><img src="картинка-2"></li>


10. ramzes 04.11.2011 / 13:56
$(document).ready(function(){

   $('li').click(function(){
     if($(this).find('img').attr("src")=='картинка-1'){
uppodSend('audioplayer1','play');
$(this).find('img').attr({src: "картинка-2"});
    }else{
uppodSend('audioplayer1','pause');
$(this).find('img').attr({src: "картинка-1"});
     }
   });

});


11. Станислав 04.11.2011 / 14:05
10. ramzes, чего-то не работает =((
9. megabit, да, оно. Только плюс ко всему ещё, чтобы при нажатии на play выводилось <script type="text/javascript">...бла-бла... яваскрипт</script>, а по умолчанию эта штука скрыта должна быть.

12. Алексей 04.11.2011 / 14:07
11. SNELS, скинь полный пример, не экстрасенс

13. Станислав 04.11.2011 / 14:13
12. megabit, имеется флеш-плеер. Выводится на страницу он вот так
<script type="text/javascript">
			var flashvars = {"uid":"audioplayer2","comment":"Плеер","st":"/style/audio93-138.txt","file":"http://audio.uppod.net/sample.mp3"};
			var params = {bgcolor:"#ffffff",  allowScriptAccess:"always",id:"audioplayer2",uppod_play_next:"1"}; 
			new swfobject.embedSWF("/uppod.swf", "audioplayer2", "435", "26", "9.0.115.0", false, flashvars, params);
			</script>
К этому плееру есть javascript-API. Так вот, запуск плеера по этому API делается так:
<li onClick="uppodSend('audioplayer2','play');" title="Пуск">play</li>
Пауза так:
<li onClick="uppodSend('audioplayer2','pause');" title="Пауза">pause</li>
Так вот, мне нужно, чтобы по умолчанию плеер был скрыт и торчала ссылка только на "play". При нажатии на неё, "play" заменяется на "pause" (ну, это ты выше уже понял и сделал, что надо) и одновременно с этим отображался плеер сам. Короче, типа так сделано в контакте.

14. Алексей 04.11.2011 / 14:13
<script type="text/javascript"> 
            var flashvars = {"uid":"audioplayer2","comment":"Плеер","st":"/style/audio93-138.txt","file":"http://audio.uppod.net/sample.mp3"}; 
            var params = {bgcolor:"#ffffff",  allowScriptAccess:"always",id:"audioplayer2",uppod_play_next:"1"}; 
            new swfobject.embedSWF("/uppod.swf", "audioplayer2", "435", "26", "9.0.115.0", false, flashvars, params);
             var audioplayer = getElementById('audioplayer2');
              audioplayer.style.display='none';
            </script>

и

<li onClick="audioplayer.style.display='block';uppodSend('audioplayer2','play');this.style.display='none';getElementById('stop').style.display='block';" title="Пуск" id="start"><img src="картинка-1"></li> 
<li onClick="uppodSend('audioplayer2','pause');this.style.display='none';getElementById('start').style.display='block';" title="Пауза" style="display:no ne;" id="stop"><img src="картинка-2"></li> 
вообще выкладывал бы в dropbox или куда-нибудь в следующий раз

15. Станислав 04.11.2011 / 14:27
14. megabit, чего-то не прокатило так

16. Алексей 04.11.2011 / 14:31
15. SNELS, id элементов проверь, там не понятно или audioplayer1 или audioplayer2

17. Станислав 04.11.2011 / 14:36
Такс, получается следующее:
Плеер сразу отображается почему-то.
При нажатии на play он перезагружается (плеер), кнопка меняется на pause, однако плеер играть не начинает. Если ещё кликнуть на паузу, а потом снова на плей, то только тогда он играть начинает =(

18. Алексей 04.11.2011 / 14:42
17. SNELS,живой пример есть?

19. Станислав 04.11.2011 / 14:43
18. megabit, локально это делаю. Могу сделать отдельную страничку и всё, что нужно включить в неё, а затем скинуть архивом =)
Вот, всё что нужно http://rghost.ru/28500651

20. Алексей 04.11.2011 / 17:29

<script language="JavaScript" src="js/uppod_player.js"></script>
<script language="JavaScript" src="js/swfobject.js"></script>
<script language="JavaScript" src="js/jquery.js"></script>

<script>
$(function(){
	$('#audioplayer2').hide();
	$('li#button').click(function(){
		$('#audioplayer2').show();	
		if($(this).text()=='Play') {
		   //uppodSend('audioplayer2','play');
		   $(this).text('Pause');
		 }else{
		  // uppodSend('audioplayer2','pause');
		   $(this).text('Play');
		}
		
	});
});
</script>

<li id="button">Play</li>  
	
	<div id="audioplayer2"></div>
			
          <script type="text/javascript">  
            var flashvars = {"uid":"audioplayer2","comment":"Плеер","st":"style/audio93-138.txt","file":"http://audio.uppod.net/sample.mp3"};  
            var params = {bgcolor:"#ffffff", allowScriptAccess:"always",id:"audioplayer2",uppod_play_next:"1"}; 
            new swfobject.embedSWF("uppod.swf", "audioplayer2", "435", "26", "9.0.115.0", false, flashvars, params);
            
            </script> 
строки разкомментируеш

21. Станислав 04.11.2011 / 17:39
Чего-то всё равно по умолчанию отображается плеер.
Собственно, так, думаю, не особо подойдёт, ибо на странице одной много плееров и у каждого свой id.

22. Алексей 04.11.2011 / 19:00
Много способов решить твою проблему а вот как тебе их объяснить хз

23. ramzes 04.11.2011 / 19:02
SNELS (4 Ноября 2011 / 17:39)
Чего-то всё равно по умолчанию отображается плеер.
Собственно, так, думаю, не особо подойдёт, ибо на странице одной много плееров и у каждого свой id.
зачем? используй один плеер, и перезагружай его при смене трека просто

24. Станислав 04.11.2011 / 19:06
23. ramzes, там API у плеера сделано так, что для автоматического перехода к следующему треку должны быть плееры пронумерованы. Да и не работает =(

25. Алексей 04.11.2011 / 19:33
24. SNELS, Это уже Вопрос не про onclick а по внутренней логике

URL: https://visavi.net/topics/26228