このコードに問題があります。divが長すぎないかどうかを判断してからnext().children()
、ajaxrequireを実行します。しかし、それは常にajaxにdivにコンテンツがある場合でも必要にします。
これがhtmlコードです:
<noscript>
<style>
.more{display:none;}
</style>
</noscript>
<!-- main content -->
<p class="click hidden" rel="12345">View more</p>
<div class="more">
<h5>Relative post</h5>
<div class="relative-post"></div>
<!-- comment area -->
</div>
<!-- main content -->
<p class="click hidden" rel="23456">View more</p>
<div class="more">
<h5>Relative post</h5>
<div class="relative-post"></div>
<!-- comment area -->
</div>
jqueryコードは次のとおりです。
jQuery(document).ready(function(){
$(".click").live('click',function() {
if($(this).next('.more').is(':visible')){
$(this).next('.more').css('display','none');
}else{
$(this).next('.more').css('display','block');
}
if($(this).next('.more').children('.relative-post:has(*)').length){
}else{
var $this = $(this);
var item_id = $this.attr('rel');
$.ajax({
url: "process",
dataType: "html",
type: 'POST',
data: 'post=' + item_id,
cache: false,
success: function(data){
$this.next('.more').children('.relative-post').html(data);
}
});
}
}
});
});