Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выполнение скрипта по id (https://javascript.ru/forum/dom-window/40258-vypolnenie-skripta-po-id.html)

Kostas 29.07.2013 22:07

Выполнение скрипта по id
 
Приветствую всех!

Есть скрип, выдающий сообщение по правому клику мыши

function click() {
					if (event.button==2)  {
					$ ("#message").show();
					setTimeout(function() { $ ("#message").hide() }, 3000)
					} }
					document.onmousedown=click;


<p id="message" >Текст сообщения</p>


Работает по клику в любом месте. А мне необходимо, чтобы он выполнялся по клику на картинке с определенным id

<img id="one" src="" />


Не могу разобраться, как это сделать. Буду признателен за помощь.

рони 29.07.2013 22:26

Kostas,
то ли квери то ли не квери ... это мысли вслух ... то ли getElementById('one') то ли $('#one')

zilker 29.07.2013 23:37

<head>
	<script src="http://yandex.st/jquery/2.0.3/jquery.min.js"></script>
</head>

<img id="one" src="http://lh5.googleusercontent.com/-pGBzOLAXjzM/AAAAAAAAAAI/AAAAAAAAAAA/FrCADq-bXCk/s27-c/photo.jpg" />
<p id="message" style="display: none;" >Текст сообщения</p>

<script>
	function click(event) {
        event.preventDefault();
		$("#message").show();
		setTimeout(function() { $ ("#message").hide() }, 3000)
	}
	$('#one').bind('contextmenu', click);
</script>

ruslan_mart 30.07.2013 12:02

Вместо:
$("#message").show();
setTimeout(function() { $ ("#message").hide() }, 3000)


Можно написать так:
$("#message").show().delay(3000).hide();

Kostas 30.07.2013 13:43

Спасибо всем отclickнувшимся)))

Цитата:

Сообщение от zilker
<head>
	<script src="http://yandex.st/jquery/2.0.3/jquery.min.js"></script>
</head>

<img id="one" src="http://lh5.googleusercontent.com/-pGBzOLAXjzM/AAAAAAAAAAI/AAAAAAAAAAA/FrCADq-bXCk/s27-c/photo.jpg" />
<p id="message" style="display: none;" >Текст сообщения</p>

<script>
	function click(event) {
        event.preventDefault();
		$("#message").show();
		setTimeout(function() { $ ("#message").hide() }, 3000)
	}
	$('#one').bind('contextmenu', click);
</script>

Ваш скрипт работает, но только на одной картинке. Если на странице находится несколько картинок с одинаковым id, то он срабатывает только по первой. Это как-то можно изменить?

zilker 30.07.2013 13:47

Id должен быть один на странице, это уникальный идентификатор. Если нужно несколько - используйте классы.

Kostas 30.07.2013 14:01

Спасибо, как раз только что сам до этого допер. Поставил класс и все заработало!

Kostas 30.07.2013 14:54

Блин, только вот новая проблема. Картинки отображаются в jquery галерее, а скрипт работает только на превьюшки, на полноразмерные его действие не распространяется. Ковырять скрипт галереи это высшие материи для меня.


Часовой пояс GMT +3, время: 00:04.