2012-04-21 2 views
1

친구 검색 기능을 사용하고 있습니다. 검색 기능은 훌륭하게 작동합니다. 이름을 검색하면 각각의 개별 사용자가 그림과 이름이있는 별도의 div에 팝업되고 "요청"이라고 표시된 상자가 나타납니다. 이제 내가하고 싶은 것은 사용자가 요청하는 jQuery를 실행하는 상자를 클릭 할 때입니다.하지만 jQuery가 내 라이브로드 JS div 내부에서 작동하지 않는 것 같습니다.JS 검색 기능이 작동하지 않는 jQuery

Heres는 내 코드 : 여기

$(document).ready(function(){ 
    $('.request').mouseover(function() { 
     $(this).addClass('select'); 
    }); 
}); 

$(document).ready(function(){ 
    $('.request').mouseout(function() { 
     $(this).removeClass('select'); 
    }); 
}); 

$(document).ready(function(){ 
    $('.request.select').click(function() { 
     var name = $(this).attr('href'); 
     $.ajax({ 
      type: "POST", 
      url: "requestfriend.php", 
      data: {'name': name} 
     }); 
     $(".request.select").load('checkmark.php', function(){ }); 

    }); 
}); 

그리고 사용자 DIV의 HTML입니다.

  echo ' 
      <div class="update miniuser" style="margin: 3px; width: 395px;"> 
      <div><img src="http://myurl.com/' . $FRIENDS[$i] . '/user.png" /></div> 
      <div style="margin-top: 10px;">' . $FRIENDS[$i] . '</div><div class="request" href="' . $FRIENDS[$i] . '">Request</div> 
      </div></div>'; 

add 클래스가 작동하지 않습니다. 나는 그것이 그 div에 살고있는 것을로드하고 있기 때문에 그것을 믿는다? 문서 준비 기능을 넣을 때. 여전히 주사위가 없습니다.

답변

1

.live()은 해당 선택기가있는 모든 요소에 함수를 추가하거나 동적으로로드하거나 아니겠습니까?

$('.request.select').live("click", function() { 
    var name = $(this).attr('href'); 
    $.ajax({ 
     type: "POST", 
     url: "requestfriend.php", 
     data: {'name': name} 
    }); 
    $(".request.select").load('checkmark.php', function(){ }); 

}); 
+0

아! 이것은 그것을했다! 고마워요. –

+0

@DJ_Plus : 문제 없습니다. 기꺼이 도와 드리겠습니다. –

1

문서에 mouseover/out 이벤트를 추가하는 중입니다. 나중에로드 할 데이터가 DOM에 추가되지 않습니다. AJAX 요청을 완료하고 콘텐츠가 DOM에 추가되면 이벤트를 첨부하십시오.

$('.request').mouseover(function() { 
    $(this).addClass('select'); 
}); 

수단 : 클래스 request 모든 요소를 ​​찾아 마우스 오버 기능을 추가 할 수 있습니다. 처리기는 나중에 을 추가하는 요소에 마법으로 표시되지 않습니다..

+0

그래서 jQuery와 함께 할 필요가있어서 라이브 로딩 된 div로 작업 할 필요가 있습니까? –

+0

@DJ_Plus, 내 대답보기. –

+0

예 답변을 보았습니다. 고마워요. 하지만 클래스 요구와 함께 divs를 모두 찾지는 않는다는 것을 의미합니다. 그러나 $ (this) 함수 때문에 .select 클래스를 하나만 추가합니다. –

관련 문제