Вход

Просмотр полной версии : Как можно при клике на нужную ссылку вывести confirm ?


saturn
18.09.2011, 14:42
Добрый день.
У меня такая ситуация, что есть
<img src="./images/page_white_delete.png" alt="Удалить"/>
но чтобы перестраховаться нужно чтобы выскакивало окошко Удалить : ДА или НЕТ.

melky
18.09.2011, 15:40
где ссылка, на которую будут нажимать?

а так.. примерно так.

myLink.onclick = function(){
return confirm("Удалить?");
}

saturn
18.09.2011, 16:11
Спасибо, все работает, а сделал так
<img id="delete" src="./images/page_white_delete.png" alt="Удалить"/>

<script>
var del = document.getElementById('delete');

del.onclick = function(){
return confirm("Удалить?");
}
</script>

Сперва не работало пока не понял что нужно было вписать не в начале а после.

Рано радовался, выскакивает только на первой ссылке а остальные пропускает.

saturn
18.09.2011, 17:19
Может кому известно почему срабатывает только первой ссылке?

melky
18.09.2011, 18:04
потому что назначен обработчик только одной картинке

катинкам надо дать какойнибудь класс, например, "delete"

потом пройтись по всем картинкам в документе с помощью document.images, отфильтровать те, у которых есть класс delete и назначить им обработчик клика.

saturn
18.09.2011, 18:25
Начало видимо такое должно быть..

var ilist = document.images;
for(var i = 0; i < ilist.length; i++) {
if( ) { }

а дальше что-то я не пойму как сделать...

melky
18.09.2011, 23:27
for (var images = document.images, i = 0, img, handler = function() {return confirm("Удалить?")}; img = images[i++];) ~img.className.indexOf("delete") && (img.onclick = handler);


но лучше так, eсли картинок на странице больше десяти-двадцати :


document.body.onclick = function(e){

var clicked = e ? e.target:event.srcElement;

clicked.tagName=="IMG" &&

~clicked.className.indexOf("delete") &&

!confirm("Удалить?") &&

e ? e.preventDefault():(event.returnValue=false);

}

saturn
19.09.2011, 09:43
melky
Спасибо, выручил, я бы как начинающий долго бы думал над таким решением.
Вот это подошло:
for (var images = document.images, i = 0, img, handler = function() {return confirm("Удалить?")}; img = images[i++];) ~img.className.indexOf("delete") && (img.onclick = handler);