$(this)在函数中不起作用
以下代码从文件加载html内容我使用了该线程
<script>$.fn.loadWithoutCache = function (){
$.ajax({
url: arguments[0],
cache: false,
dataType: "html",
success: function(data) {
$(this).html(data); // This is not working
//$('#result').html(data); //THIS WORKS!!!
alert(data); // This alerts the contents of page.html
}
});
}
$('#result').loadWithoutCache('page.html');
</script>
请让我知道问题是什么?我希望这是愚蠢的:)
编辑:正确的代码
<script>$(document).ready(function() {
$.fn.loadWithoutCache = function (){
var $el = $(this);
$.ajax({
url: arguments[0],
cache: false,
dataType: "html",
context: this,
success: function(data) {
$el.html(data);
}
});
}
$('#result').loadWithoutCache('page.html');
});
</scipt>
谢谢乔恩和大家!
回答:
callback(success
)函数在响应到达时运行,并且不在loadWithoutCache
方法范围内运行,因为该函数已经结束。
您可以context
在ajax
调用中使用属性来设置回调函数的上下文:
$.fn.loadWithoutCache = function (){ $.ajax({
url: arguments[0],
cache: false,
dataType: "html",
context: this,
success: function(data) {
$(this).html(data);
}
});
}
以上是 $(this)在函数中不起作用 的全部内容, 来源链接: utcz.com/qa/403873.html