2013-10-23 2 views
0

일부 클래스 ID로 일부 php 행을 반향시키고 jquery .click을 선택자로 사용할 수 있어야합니다. 이 일을 할 수있는 방법이 있습니까 ?? 이 속성은 다른 어떤 것으로도로드되지 않으며 나중에 PHP에 의해 추가됩니다.함수가 수행 될 때 동적 선택기가 추가되었습니다.

play.js-

$(".link").click(function(){ 
    /* var l = "" 
    $.post('input_commands/move_to.php',{l:l}, function(data) { 
     text=data; 
     elem = $("#placeholder"); 
     //delay=100; 
     addTextByDelay(text,elem,delay); 
    }); */ 
    alert("omg whyyyyy"); 
}); 

get_locations.php - 동적 요소 (제 DOM 부하 후에 추가 된 것)에 이벤트를 바인딩하기 위해

if($array_loc['loc_north']>0){echo "<a class='link' id='location_north'>Go north to ".$array_loc_north['loc_name']."</a> <br>";} 
+0

그래서 jquery가 클릭 할 때 PHP 파일에서 데이터를 참조하거나 호출 할 수있는 방법을 묻는 중입니까? – blackhawk

답변

0

요소가 동적으로 (또는 이벤트 처리기가 만들어진 후) DOM에 추가되므로 위임 된 이벤트를 사용해야합니다. 위에서

$(document).on('click', '.link', function(){ 
    console.log("clicked"); 
}); 

이 이벤트는 문서에 위임 등 모든 클릭은 대상이 이벤트가 위임되었을 때 존재하지 않았던 요소 경우에도 .link 선택에 대해 확인됩니다.

0

,

교체 :

$(".link").click(function(){ 

with :

$(document).on('click', '.link', function(){ 

희망이 있습니다.

0

아약스를 사용하여 동적으로 추가 한 경우 해당 선택 도구를 호출하고 콜백에 .click()을 추가 할 수 있습니다.

$.ajax({ 
     url: '...', 
     success: function(response) { 
      // do stuff with response (assume that .link will be appended) 
      $(".link").click(function(){ 
       //stuff when click link 
      } 
     } 
    }); 

그렇지 않으면 출력 온 클릭 속성으로 링크 및 지정 함수 정의 할 수

if($array_loc['loc_north']>0){echo "<a class='link' id='location_north' onclick='customFunction(this)'>Go north to ".$array_loc_north['loc_name']."</a> <br>";} 

를 상기 JS에서 :

function customFunction(element) { 
//do stuff here after the link was clicked 
//element variable passed as parameter contains the link element clicked 
} 

PS : 여러 요소가 있다면 고유이어야하므로 "id"속성에 대한 상수 값을 지정하는 것은 좋지 않습니다.

관련 문제