2017-12-11 3 views
-1

이것은 내 코드입니다. jQuery를 사용하여 클릭 이벤트에 이름과 URL을 전달하려면 어떻게해야합니까?foreach에서 클릭 이벤트에 대한 데이터 전달

<?php foreach ($call_array ['events'] as $data) { ?> 
    <div class="card"> 
    <div class="card-header"> 
     <?php echo '<h2 class="card-title">'. $data ['name']['text'] .'</h2>'; ?> 
    </div> 
    <div class="card-footer"> 
     <a href="<?php echo $data['event_url'];?>" role="button">Go Now</a> 
    </div> 
    </div> 
<?php } ?> 

답변

1

당신은 당신의 사업부에 데이터를 유지하는 속성을 사용할 수 있습니다.

$(".card").on("click", function(e) { 
    $(this).attr("data-url"); //contains url of card clicked 
    $(this).attr("data-name"); //contains name of card clicked 
}); 
+0

감사 니콜라스 :

<div class="card" data-name="<?php echo $data['name'];?>" data-url="<?php echo $data['event_url'];?>"> <div class="card-header"> <?php echo '<h2 class="card-title">'. $data ['name']['text'] .'</h2>'; ?> </div> <div class="card-footer"> <a href="<?php echo $data['event_url'];?>" role="button">Go Now</a> </div> </div> 

그리고는 jQuery를이 방법으로 액세스 할 수 있습니다. 미안하지만 제대로 설명하지 못했습니다. API에서 데이터를 가져 와서 php의 foreach 루프를 통해 실행하여 카드 목록을 생성합니다. 누군가가 카드를 클릭하면 다른 프로세스를 실행하기 위해 해당 카드 정보가 필요합니다. –

+0

나는 당신의 문제에 대한 가능한 해결책을 가지고 나의 대답을 편집 했으므로 나는 그것을 더 잘 이해하고있다. –

0

값을 click 이벤트에 전달하는 대신 이벤트 핸들러 내의 DOM에서 값을 읽을 수 있습니다. 이런 식으로 뭔가 :

$('.card a').click(function(e) { 
 
    e.preventDefault(); 
 
    var name = $(this).closest('.card').find('.card-title').text(); 
 
    var url = $(this).attr('href'); 
 
    
 
    console.log(name, url); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="card"> 
 
    <div class="card-header"> 
 
    <h2 class="card-title">Name A</h2> 
 
    </div> 
 
    <div class="card-footer"> 
 
    <a href="#event-url1" role="button">Go Now</a> 
 
    </div> 
 
</div> 
 
<div class="card"> 
 
    <div class="card-header"> 
 
    <h2 class="card-title">Name B</h2> 
 
    </div> 
 
    <div class="card-footer"> 
 
    <a href="#event-url2" role="button">Go Now</a> 
 
    </div> 
 
</div>

관련 문제