1

私はこれを機能させようとしています。いくつかの画像があり、それぞれに独自の ID を持つこのリンクがあります。

これはリンクです:<a href="#" class="remove_img" data-id="'.$img->g_id.'">x</a>

これはスクリプトです:

<script>
$(document).ready(function() {
    $(".remove_img").click(function() {
        e.preventDefault();

        var id = $this.data('id');
        $.ajax({
           url: 'remove_img.php',
           type: 'POST',
           data: { bild : id },
           success: function(data) {

            alert("Gespeichert!");

          }
        });
    });
});
</script>

そして、次のように remove_img.php で ID を受け取ります: $_POST['bild']

Chrome コンソールに次のエラーが表示されます。

$this は定義されていません (2 回繰り返します)

4

2 に答える 2

2

jQuery オブジェクトを正しく参照するには、次のようにします。

var id = $(this).data('id');

$thisはまだ宣言されていない変数として読み込まれますが、$(this)は の jQuery オブジェクト ラッパーthis、またはクリックされたアイテムです。

于 2013-05-28T14:26:32.160 に答える
2

現在の jQuery 要素を参照する現在の方法はそうではあり$(this)ません(それが有効なlike$thisの値を持つ変数である場合、アプローチは機能しますが、あなたの場合はあまり意味がありません)。したがって、次の行を変更します。$(this)var $this = $(this);

var id = $this.data('id');

に:

var id = $(this).data('id');

または (jQuery を使用する代わりに DOM 要素を直接参照する):

var id = this.dataset.id;
于 2013-05-28T14:27:09.310 に答える