2015-08-29 2 views
2

Это настроение.Сохранить уникальную «post_id», чтобы найти div

<?php echo '<button type="button" class="rh_show_button" data-post_id="' . esc_attr($post->id) . '">' ;?> 
    Setting 
<?php echo '</button>';?> 
<?php echo '<div class="rh_content" style="display:none;" data-post_id="' . esc_attr($post->id) . '">' ;?> 
    Content 
<?php echo '</button>';?> 

<script> 
jQuery(".rh_content[data-post_id='" + jQuery(this).data("post_id") + "']").click(function(){ 
    jQuery(".rh_show_button[data-post_id='" + jQuery(this).data("post_id") + "").show(); 
    });  
</script> 

Существует кнопка, и есть div, который скрыт.

Предположим, что есть 10 кнопок + содержимое. У каждого из них есть уникальный post_id. Итак, вот что я хотел бы сделать.

  1. Когда нажата кнопка button, сохраняется уникальная post_id.
  2. Сохраненный post_id используется для размещения div с этим post_id, а затем показывает только этот div.

Есть ли у меня сценарий правильно?

ответ

3

$(this) не будет доступен, если вы пытаетесь связать элемент при загрузке. Не забудьте поставить следующее внутри $(document).ready();

jQuery(document).ready(function(){ 
    jQuery(".rh_content").click(function(){ 
     post_id = jQuery(this).data("post_id"); 
     if(post_id.length > 0) 
      jQuery(".rh_show_button[data-post_id='" + jQuery(this).data("post_id") + "").show(); 
    }); 
}) 

Ответить на комментарий.

Значение jQuery(this) будет доступно только внутри функции, связанной с элементом. И if(post_id.length > 0) означает, что элемент clicked с классом rh_content имеет атрибут данных post_id, присутствующий в нем.

+0

Благодарим вас за ответ. Не могли бы вы рассказать мне, что делает «if (post_id.length> 0)». И что вы имеете в виду, что '$ (this)' не будет доступно? Спасибо :) –

+1

@EmilyTurcato Значение 'jQuery (this)' будет доступно только внутри функции, связанной с элементом. И 'if (post_id.length> 0)' означает, что щелкнутый элемент с классом 'rh_content' имеет в нем атрибут data_ post_id'. – RRK

+0

Я вижу. изучая что-то новое. Спасибо! знак равно –