Zacząłem robić skrypt pinezek taki jak na nk (a przynajmniej podobny). Obecnie jestem na takim etapie:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="author" content="sebekzosw" /> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> var move = false; var pin_id = 0, set = true; jQuery(document).ready(function() { $(document).mousemove(function(e) { if(move) { $('#pin_'+pin_id).css({'left':e.pageX+5+'px', 'top' : e.pageY+5+'px'}); } }); $("#photo").click(function(e) { if(move) { var pos = $(this).position(); pos.left = parseInt(pos.left); pos.top = parseInt(pos.top); var x = e.pageX - pos.left; var y = e.pageY - pos.top; move = false; 'position' : 'absolute', 'width' : '200px', 'height' : '200px', 'left' : x+35+'px', 'top' : y+35+'px', 'zIndex' : '0', 'backgroundColor' : 'white', 'border' : '1px solid black' }).attr('id', 'added_'+pin_id).html("Treść (maksymalnie 100 znaków):<br /><a href='' onclick='Usun(); return false;'>x</a><br /><textarea cols='20' rows='5'>"+x + ", " + y +"</textarea><input type='button' onclick='Zapisz(); return false;' value='Zapisz' />").appendTo('body'); //alert(); } return false; }); $("#pp").click(function(e) { if(pin_id == 0) { pin_id = new Date().getTime(); move = true; set = true; var pos = $(this).position(); pos.left = parseInt(pos.left); pos.top = parseInt(pos.top); var x = e.pageX - pos.left; var y = e.pageY - pos.top; 'position' : 'absolute', 'width' : '34px', 'height' : '34px', 'left' : x+'px', 'top' : y+'px', 'zIndex' : '2', 'background' : 'url(http://ba013.k12.sd.us/images/note2.gif) no-repeat'}).attr({'id' : 'pin_'+pin_id}).appendTo('body'); } else if(pin_id != 0 && !set) { $('#pin_'+pin_id).remove(); move = false; set = false; } return false; }); $('.complete').click(function(){ alert('s'); return false; }); }); function Zapisz() { $('#added_'+pin_id).text('treść mojej pinezki').hide(); $('#pin_'+pin_id).css({'zIndex' : '0'}).addClass('complete'); pin_id = 0; set = false; move = false; } function Usun() { $('#pin_'+pin_id).remove(); $('#pin_'+pin_id).remove(); pin_id = 0; set = false; move = false; } </script> </head> <body> <img src="http://media2.pl/pliki/lech_kasa_promocja.jpg" id="photo" /> </body> </html>
Chciałem zrobić takie coś, że jak przypnę coś na zdjęciu, zapiszę to po najechaniu mi się wykona akcja pokazująca to co zapisałem. Jednak mam problem z $('.complete'). Powinno się po kliknięciu na ten element z klasą .complete (czyli jak pinezka została zapisana i przypięta, ta class jest dopisywana) wykonywać odpowiednie zadanie (w moim przypadku wyświetlić alert z napisem "s" ). Jednak nie działa mi to ;/ czym to jest spowodowane? Tym, że div ma pozycje absolutną? (wydaje mi się, że to bez znaczenia). Jeżeli zacznie mi się wyświetlać alert to wtedy będę mógł zrobić, że po najechaniu na to pokaże mi się div z moją treścią.