我正在努力将prompt()更改为jPrompt(),因为IE会阻止prompt()运行。问题是$(this)不再正常工作,因为jPrompt()不返回值,而是使用回调函数。
所以我想说我有类似的东西,它有效:
$("a.foo").click(function(){
$(this).text(prompt("Type Something",""));
}
当我将其转换为此时,它会中断:
$("a.foo").click(function(){
jPrompt("Type something:","","", function(r) {
$(this).text(r);
}
}
如何正确访问$(this)?
答案 0 :(得分:5)
试试这个:
$("a.foo").click(function(){
var that = this;
jPrompt("Type something:","","", function(r) {
$(that).text(r);
}
}
答案 1 :(得分:1)
您可以使用闭包:
$("a.foo").click(
function(){
var self = this;
return function() {
jPrompt("Type something:", "", "", function(r) {
$(self).text(r);
});
}
}()
);
答案 2 :(得分:0)
问题是你试图将'r'作为一个元素来访问。 jPrompt将传递输入为“r”的文本。
$("a.foo").click(function(){
jPrompt("Type something:","","", function(r){
alert(r); //This will show the text entered.
});
});