jquery闭包ajax调用,$(this)为空
我是jquery新手,所以这看起来很简单,但我看不出诀窍:pjquery闭包ajax调用,$(this)为空,ajax,this,jquery,Ajax,This,Jquery,我是jquery新手,所以这看起来很简单,但我看不出诀窍:p 我使用的是jquery 1.2.6(我无法升级它:/),这就是我使用livequery插件的原因 上下文仅是电子商店购物车的更新。 问题是我没有在update_it.php中获得我想要的“myid”值。 -对于示例1(参见下面的代码),它正在工作!调用完成后,我在update_it.php中获得了“myid”的良好值。但它是硬编码的,我希望它是通用的(参见示例2)。 -对于示例2,它不起作用:(警报起作用,调用起作用,但我没有得到“m
我使用的是jquery 1.2.6(我无法升级它:/),这就是我使用livequery插件的原因 上下文仅是电子商店购物车的更新。
问题是我没有在update_it.php中获得我想要的“myid”值。
-对于示例1(参见下面的代码),它正在工作!调用完成后,我在update_it.php中获得了“myid”的良好值。但它是硬编码的,我希望它是通用的(参见示例2)。
-对于示例2,它不起作用:(警报起作用,调用起作用,但我没有得到“myid”的任何值) 以下是我的javascript:
$(document).ready( function () {
function update_it() {
$.ajax({
type: "POST",
url: "./update_it.php",
dataType: "json",
data: "myid="+$(this).val(),
success: function(msg){
$("div#cart-full").html(msg.fullcart);
$("div#cart").html(msg.mincart);
},
error : function(xhr, desc, e) {
alert("ko - " + xhr.status);
}
});
}
// Example 1
$("#mycheckbox_1").livequery("click", update_it);
// Example 2
$("input:checkbox[id^=mycheckbox_]").each(function(){
$(this).livequery("click", update_it);
});
});
感谢您的帮助!jquery页面上的第二个选择示例包含第二组引号: jQuery(“[attribute^='value']”) 试一试 $(“输入:复选框[id^='mycheckbox_'])。每个(函数(){ 编辑: 在这种情况下,请尝试以下示例中的“ON”关键字,而不是livejquery。 对于Jquery 1.2.6,单击()关键字 $(此)。单击(doSomethingFunc)
编辑
如果你不在文章中加引号,这是可选的。很抱歉,我看不出你的文章在哪里解决了我的问题。引号确实是可选的。我不能使用on(),因为它是在jquery 1.7中添加的。我使用livequery是因为我不能使用juste click(),因为在替换html时它将不再工作。@Pontek.click()在ajax调用将.Click()重新绑定到html中的新对象之后,可以从函数中的JQuery 1.0.Call.Bind()和.Unbind()获得。
$(function () {
$(document).ready(function(){
$("[id^='hoverme_']").each(function () {
$(this).on("click", listen);
});
});
function listen(){
alert($(this).html());
}
});
$(document).ready( function () {
// Example 2
$("input:checkbox[id^=mycheckbox_]").click(update_it);
});
function update_it() {
$.ajax({
type: "POST",
url: "./update_it.php",
dataType: "json",
data: "myid="+$(this).val(),
success: function(msg){
$("div#cart-full").html(msg.fullcart);
$("div#cart").html(msg.mincart);
$("input:checkbox[id^=mycheckbox_]").unbind("click");
$("input:checkbox[id^=mycheckbox_]").bind("click");
},
error : function(xhr, desc, e) {
alert("ko - " + xhr.status);
}
});
}