0

以下の HTML コードからカテゴリを削除しようとしています。前のものをクリックすると、または最初のものが削除されます。

--HTMLコード--

<div id="catlist" name="catlist" style=" color:#fff; font-family:arial; font-size:12px;">

<input type="checkbox" value="<?php echo $row_cat['cat']; ?>" class="checkboxcat" id="<?php $ctn = $row_cat['cat']; echo $ctn; ?>"  name="catcheckbox" style="border:#cccccc 1px solid; background-color:#fff;">

<span class="cattext" id="<?php echo $ctn; ?>"><?php echo $ctn; ?></span>

<span class="CatDelete" id="<?php echo $ctn; ?>" style="position:relative; left:10px; color:#c3c3c3; font-size:10px; cursor:pointer;">Delete</span>

</div>

--JSコード--

$(".CatDelete").live('click',function() {

var valu = $('.checkboxcat').closest('input').find('checkbox').val();

var dataString = 'CatDelVal='+valu;
    $.ajax({     type: "POST",     
        url: "cat_delete.php",     
        data: dataString,     
        success: function(){       
    $('.success').fadeIn(1000);     }     });      
    return false;   


});


The issue is here: 
**var valu = $('.checkboxcat').closest('input').find('checkbox').val();**

削除をクリックすると、その特定のカテゴリを削除する必要がありますが、理由はわかりませんか?

[更新] http://jsfiddle.net/7RrNN/

4

3 に答える 3

1

ページに同じIDを持つ3つの要素がありますが、これは無効IDです。一意である必要があります。

$('.checkboxcat').closest('input').find('checkbox')をすべきかわからないが、:のに要素はほとんどない<input>ので、最も近い入力親要素を取得する必要はありません。また、<checkbox>HTMLには要素がありません。次のことですか?

$('input:checkbox.checkboxcat')
于 2012-12-02T12:53:08.687 に答える
1

あなたの JS コードは次のように変更する必要があると思いますon:livelive

$(".CatDelete").on('click', function() {

var valu = $(this).siblings('.checkboxcat').val();

var dataString = 'CatDelVal='+valu;
    $.ajax({     type: "POST",     
        url: "cat_delete.php",     
        data: dataString,     
        success: function(){       
    $('.success').fadeIn(1000);     }     });      
    return false;   
});

PHPコードもこのように変更する必要があります

<span class="CatDelete" id="<?php echo $ctn; ?>" data-id="<?php echo $row_cat['cat']; ?>" style="position:relative; left:10px; color:#c3c3c3; font-size:10px; cursor:pointer;">Delete</span>

于 2012-12-02T12:49:16.837 に答える
0

御時間ありがとうございます。なぜ機能しなかったのかわかりません。再コーディングしただけで、うまくいきました。おそらくシンプルさがアイデアでした。わからない。

于 2012-12-02T17:09:28.853 に答える