javascript - Ajax setting 'context' does not affect 'data's location -


the following ajax works

function retrieve(el) {     var table = this;     this.el = el;     this.fetchinfo = function () {         $.ajax('data.html', {             context: table,             <!-- question here -->             data: {                 location: table.data('location')             },             success: function (response) {                 this.el.find('.info').html(response).fadein();             },         }         } 

but wondering why cannot replace table.data this.data on denoted line. since set context table variable, this should set whatever table referring right? holds true in context of other members of ajax object (including success), not members of data. why case?

data('name') extracts value tag attribute data-name

the context variable you've given applies within success callback, , doesn't change of other parameters passed $.ajax.

the answer therefore depends on how call fetchinfo. data: variables resolved in whatever context fetchinfo has. given you're experiencing problems, suggests not calling function retrieve object context.

edit line problem:

this.el.on('click', 'button', this.fetchinfo); 

just because you've referred this.fetchinfo, doesn't make this context when it's subsequently invoked. try instead:

this.el.on('click', 'button', $.proxy(this.fetchinfo, this)); 

Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

c++ - End of file on pipe magic during open -