php
  • jquery
  • 2011-03-19 6 views 0 likes 
    0

    목록에서 파일을 삭제 한 다음 AJAX를 통해 목록을 다시로드하는 jquery 함수가 있습니다.jquery 함수는 한 번만 트리거합니다.

    완벽하게 작동하지만 단 한 번.

     $(".delbutton").click(function(){ 
         var filename = $(this).attr("id"); 
         var info = 'pid=<?php echo $_GET["pid"]; ?>&f=' + filename; 
          $.ajax({ 
           type: "POST", 
           url: "deleteupload.php", 
           data: info, 
           success: function(){ 
            $('#filelist').load("files.php?pid=<?php echo $_GET["pid"]; ?>"); 
           } 
          }); 
        }); 
    
    }); 
    

    HTML 페이지에 또 다른 JQuery와 기능이 하나가되지 않을 때 그래서 그 고장 jQuery를하지 않는 일을 계속

    <div id="filelist"> 
        <img src='/images/cross.png' alt='delete' class='delbutton' id='OUCH.gif'>&nbsp;OUCH.gif<br> 
    
    <img src='/images/cross.png' alt='delete' class='delbutton' id='xmas_tree.png'>&nbsp;xmas_tree.png<br> 
        </div> 
    

    입니다.

    누군가가 문제를 보게 될 수는 없습니다.

    +0

    @Steve - 콘솔에 오류가 있습니까? – Kit

    +0

    ID를 할당하는 독특한 방법 :) – naveen

    +0

    PHP 생성 jQuery 코드에 값을 주입하고 있습니까?! – Alnitak

    답변

    3

    .delbutton과 일치하는 요소에 바인딩하는 것이지만 $('#filelist').load 호출로 바꾸는 것이 문제입니다. click과 같은 표준 바인딩 함수는 요소 인에 속하지만 선택자에 바인딩되지 않습니다.

    간편한 방법은 live 또는 delegate 중 하나를 사용하는 것입니다.

    $('#filelist').delegate(".delbutton", 'click', function(){ 
        // your code here 
    }); 
    

    NB 내가 대신 data-url 속성을 사용하는 것이 좋습니다 것 ... id 속성보다 파일 이름을 넣어 아마 더 좋은 장소가 있습니다 : 나는 delegate 구문을 선호합니다. (data 참조)

    +0

    rtfm을 가지고있어 주셔서 감사합니다. 솔루션처럼 보이고 뭔가 배웠습니다 ... 예외 ... 유일한 코드입니다. 거기에 넣어 경고 ('테스트'); 그것은 유발하지 않습니다. 매뉴얼에 따르면 (그러므로 내) 구문이 옳다. 내가 놓친 게 있니? – Steve

    +0

    @ 스티브 코드를 실제로 보지 않고 말하기가 어렵습니다. – lonesomeday

    +0

    HAH! 위임은 1.4.2에서 소개되었습니다. 1.3.x를 사용했습니다 : P 이제 작동합니다. 감사합니다 – Steve

    관련 문제