0
<?php $count = 1; foreach ($settings[$slug] as $slug): ?>
    <div data-toggle="buttons-radio" class="btn-group">
       <button id="enable" value="1" class="btn btn-success active" type="button"           name="includeicon"><i class="icon-ok icon-white"></i></button>
       <button id="disable" value="0" class="btn" type="button" name="includeicon"><i class="icon-remove"></i></button>
    </div>
<?phpendforeach?>

$(document).ready(function(){

    $("#enable").click(function(event) {
    var slugid = $('#slugid').val();
    $.ajax({
           url: SITE_URL + 'admin/PluginConf/enable/?'+slugid,
        type: "POST",
        data : {'slugid' : slugid},
        success: function(data) {
                    }
                 });
    }); 

    $("#disable").click(function(event) {
    var slugid = $('#slugid').val();
    $.ajax({
        url: SITE_URL + 'admin/PluginConf/disable/?'+slugid,
        type: "POST",
        data : {'slugid' : slugid},
        success: function(data) {
                    }
     });
    });
        }); 

jqueryでボタンIDを渡していますが、ajaxは最初のボタンに対してのみ呼び出されます。2番目と他の人のためにそれは呼ばれていません、誰かがこれで私を助けることができますか?ありがとう

4

3 に答える 3

1

の とのID がenableあります。ループが複数回実行されると、同じ ID を持つ複数のボタンが表示されます。ID は一意である必要があります。代わりに、別のものを使用してクリックを識別します。disableforeach

enable有効化ボタンにクラスを追加disableし、無効化ボタンにクラスを追加してから、次のようなイベントをキャッチすることをお勧めします。

$('.enable').click(function() {
    // code in here
});

$('.disable').click(function() {
    // code in here
});
于 2013-03-08T11:41:13.847 に答える
0

複数のアイテムのクリックイベントをIDでバインドしないでください。IDは一意の識別子である必要があります。

<?php $count = 1; foreach ($settings[$slug] as $slug): ?>
    <div data-toggle="buttons-radio" class="btn-group">
       <button value="1" class="enable btn btn-success active" type="button"           name="includeicon"><i class="icon-ok icon-white"></i></button>
       <button value="0" class="btn disable" type="button" name="includeicon"><i class="icon-remove"></i></button>
    </div>
<?phpendforeach?>

$(document).ready(function(){

    $(".enable").click(function(event) {
    var slugid = $('#slugid').val();
    $.ajax({
           url: SITE_URL + 'admin/xervPluginConf/enable/?'+slugid,
        type: "POST",
        data : {'slugid' : slugid},
        success: function(data) {
                    }
                 });
    }); 

    $(".disable").click(function(event) {
    var slugid = $('#slugid').val();
    $.ajax({
        url: SITE_URL + 'admin/xervPluginConf/disable/?'+slugid,
        type: "POST",
        data : {'slugid' : slugid},
        success: function(data) {
                    }
     });
    });
}); 
于 2013-03-08T11:40:46.957 に答える
0

ケース ボタンの複数の要素が同じ id を持つ場合、正しくない id を使用しています。 foreach ループを使用すると、同じ特定の id を持つ複数のボタンが作成されます。ID は何かが一意であることを意味し、1 つの要素だけがその特定の ID を持つことができます。このボタンのクラスを作成し、これを念頭に置いてスクリプト コードを変更する必要があると思います。ここで私が提案するもの。それが役に立てば幸い。

<?php $count = 1; foreach ($settings[$slug] as $slug): ?>
<div data-toggle="buttons-radio" class="btn-group">
   <button value="1" class="btn btn-success active enable" type="button"             name="includeicon"><i class="icon-ok icon-white"></i></button>
   <button value="0" class="btn disable" type="button" name="includeicon"><i class="icon-remove"></i></button>
</div>
<?php endforeach; ?>

$(document).ready(function(){

$(".enable").click(function(event) {
var slugid = $('#slugid').val();
$.ajax({
       url: SITE_URL + 'admin/xervPluginConf/enable/?'+slugid,
    type: "POST",
    data : {'slugid' : slugid},
    success: function(data) {
                }
             });
}); 

$(".disable").click(function(event) {
var slugid = $('#slugid').val();
$.ajax({
    url: SITE_URL + 'admin/xervPluginConf/disable/?'+slugid,
    type: "POST",
    data : {'slugid' : slugid},
    success: function(data) {
                }
 });
});
    }); 
于 2013-03-08T11:41:18.190 に答える