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)不是$this(如果这是一个值为$(this)like的变量,var $this = $(this);它是有效的,但在您的情况下没有多大意义,您的方法将起作用)。所以改变这一行:

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

至:

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

或者(直接引用 DOM 元素而不是使用 jQuery):

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