2011-05-08 3 views
1

this photo gallery from Codrops을 사용하여 이미지를 표시합니다. 내가 클릭 한 [확대 된] 현재 이미지를 삭제하는 버튼을 추가했습니다. 그러나 클릭 한 이미지는 삭제되지 않지만 앨범의 첫 번째 사진은 삭제됩니다.현재 이미지의 경로 얻기 - jQuery

클릭 한 이미지의 이미지 경로를 가져 오려면 어떻게해야합니까? 현재 이미지]?

이 내가 갤러리 스크립트에 추가 한 jQuery 코드입니다 :

var image = $('#photos').attr("alt"); 

       /* If delete is called */ 
       $('#adelete').click(function(){ 
       //create post data 
        var postData = { 
         "image" : image 
       }; 

        //make the call 
        $.ajax({ 
         type: "POST", 
         url: "delete.php", 
         data: postData, 
         success: function(data){ 
         alert("Image deleted successfully! " +image+data); 
         } 
        }); 
       }); 

PHP :

<?php 
    $image = $_REQUEST['image']; 
    if (isset($image)) { 
     unlink($image); 
     echo "Success"; 
    } 
?> 

'사진'이미지의 ID입니다. 나는 갤러리 코드로 var image = $('#wrapper img').attr("alt");를 사용하는 경우

echo "<img id='photos' src='/thumbs/$image' alt='$dirname/$image' />"; 

은, 그것은 undefined 오류를 제공하고 더 이미지는 삭제되지 않습니다. 확장 된 이미지가 런타임에로드되기 때문에 이것이라고 가정합니다.

$('#photos').click(function() { 
    var path = $(this).attr('src'); 
}); 
+0

하는 VAR 이미지 = $ ('# 사진') '시도 소품 ("고도을");..'당신'.click 내부 (...) '(jQuery v1.6) – diEcho

+0

그랬습니다. 썸네일을 클릭 한 이미지가 아닌 앨범의 첫 번째 사진을 삭제합니다. – input

답변

1

:

+0

포인터를 가져 주셔서 감사합니다! 패널에서 전체 이미지를로드 할 때 이미지 요소의 src 특성이 변경되었음을 알지 못했습니다. 나는 alt를'#wrapper img' 엘리먼트의 src로 바꿨고 그것은 트릭을했다. – input

0

당신은 그냥 이렇게 모든 다른 혼란에 대해 잘 모르지만, 클릭 된 이미지의 경로를 얻을 수 있도록 .click(...)

+0

사진의 '.click' 이벤트 또는 삭제 버튼? 이 갤러리가 작동하는 방식은 미리보기 이미지를 클릭하면 전체 이미지를로드하는 것입니다. 전체 이미지를 클릭하면 축소판 이미지를 표시하는 앨범으로 돌아갑니다. – input

0

내부 var image = $('#photos').attr("alt");을 둘 필요 문제는 페이지에 넣고있는 이미지가 패널에로드 된 것과 같은 이미지 요소가 아니라는 것입니다. 콘텐츠 영역에서 삭제하려는 패널의 이미지와 동일한 URL이있는 일치하는 이미지를 검색 한 다음 alt 속성을 가져와야합니다. [alt이 정말로 필요합니까, 아니면 src에서 서버의 디렉토리가 무엇인지 알아낼 수 없습니까? 그렇다면 두 번째 조회를 수행하지 않아도됩니다. 그냥 패널 이미지에서 URL을 다시 전달할 수]

/* If delete is called */ 
$('#adelete').click(function(){ 
    var src = $('#wrapper img').attr('src'); 

    var image = $('#content img:has([src="' + src + '"])').attr('alt'); 

    //create post data 
     var postData = { 
      "image" : image 
    }; 

    //make the call 
    $.ajax({ 
     type: "POST", 
     url: "delete.php", 
     data: postData, 
     success: function(data){ 
     alert("Image deleted successfully! " +image+data); 
     } 
    }); 
}); 
+0

또한'$ (this) .prop ("src")'jQuery v1.6에서 사용할 수 있습니다. – diEcho

+0

코드를 시도했지만 작동하지 않았습니다. 이 갤러리가 작동하는 방식은 미리보기 이미지를 클릭하면 전체 이미지를로드하는 것입니다. 전체 이미지를 클릭하면 축소판 이미지를 표시하는 앨범으로 돌아갑니다. – input