0

このコードに問題があります。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);
                }
            }); 
                    }
        }
    });
});
4

3 に答える 3

2
$(function() {
    $(document).on('click', '.click', function() {
        var next = $(this).next('.more');
        next.toggle(!next.is(':visible'));

        if (next.children('.relative-post:empty').length) {
            var item_id = $(this).attr('rel');
            $.ajax({
                url: "process",
                dataType: "html",
                type: 'POST',
                data: {post: item_id},
                cache: false,
                success: function(data) {
                    next.children('.relative-post').html(data);
                }
            });
        }
    });
});​

フィドル

于 2012-08-30T15:35:46.937 に答える
0

コードを置き換えます

if($(this).next('.more').children('.relative-post:has(*)').length)

以下で

 if($(this).next('.more').children('.relative-post').html())
于 2012-08-30T15:31:31.640 に答える
0

試す

if($(this).next('.more').children('.relative-post').html().length){

于 2012-08-30T15:28:01.333 に答える