The following code loads html content from a file (i used this thread)
<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>
Please let me know what the problem is?
I hope it’s something stupid 🙂
Edit: CORRECT CODE
<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>
Thanks Jon and everyone!
The callback (
success) function runs when the response arrives, and it doesn’t run in the scope of theloadWithoutCachemethod, as that has already ended.You can use the
contextproperty in theajaxcall to set the context of the callback functions: