我开发了以下代码,我需要准确传递这个'这个' ajax成功函数的值(因为这个类有很多项)。怎么做。
$(document).on('click', '.address_remove_link', function(e) {
var id = $(this).attr("data-id");
$.ajax({
type: 'POST',
url: 'inc/controlllers/detele_shipping_addr.php',
data: {
internalId: id
},
success: function(response, this) {
$(this).parent().closest('div').hide(200);
},
error: function(data) {
console.log("error");
}
});
});
答案 0 :(得分:1)
问题是因为undefined body
处理函数中this
的范围发生了变化。您可以将外部范围存储在单击处理函数中。试试这个:
success
答案 1 :(得分:0)
一种简单的方法是使用函数关闭的变量:
<Button
android:id="@+id/wearable_alarm_button"
android:layout_width="wrap_content"
android:background="@drawable/red_button"
android:layout_height="wrap_content" />
<Button
android:layout_width="130dp"
android:layout_height="120dp"
android:background="@drawable/blue_button"
android:id="@+id/wearable_timer_button"
android:layout_gravity="right|bottom" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text"
android:textColor="#ffffff"
android:layout_gravity="center"/>
或者您可以使用$(document).on('click', '.address_remove_link', function(e) {
var $this = $(this); // ***
var id = $this.attr("data-id"); // ***
$.ajax({
type: 'POST',
url: 'inc/controlllers/detele_shipping_addr.php',
data: {
internalId: id
},
success: function(response) {
$this.parent().closest('div').hide(200); // ***
},
error: function(data) {
console.log("error");
}
});
});
(MDN,spec):
Function#bind
答案 2 :(得分:0)
您正在处理点击事件处理函数的范围,因此您可以创建一个self
变量并像这样使用它:
$(document).on('click', '.address_remove_link', function(e) {
var self = $(this),
id = self.attr('data-id');
$.ajax({
type: 'POST',
url: 'inc/controlllers/detele_shipping_addr.php',
data: {
internalId: id
},
success: function(response) {
// Do something with "response"
self.parent().closest('div').hide(200);
},
error: function(data) {
console.log('error');
}
});
});