.selector property is removed
geoffreyk opened this issue · 4 comments
http://jquery.com/upgrade-guide/1.9/#selector-property-on-jquery-objects
As of 1.9, the .selector property is gone.
Looks like it is still hanging around in in ajaxForm.
Unless I am reading this wrong, .selector needs to be dealt with.
$.fn.ajaxForm = function(options) {
options = options || {};
options.delegation = options.delegation &&
// in jQuery 1.3+ we can fix mistakes with the ready state
if (!options.delegation && this.length === 0) {
var o = { s: this.selector, c: this.context };
if (!$.isReady && o.s) {
log('DOM not ready, queuing ajaxForm');
$(function() {
$(o.s,o.c).ajaxForm(options);
});
return this;
}
// is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
return this;
}
if ( options.delegation ) {
$(document)
.off('submit.form-plugin', this.selector, doAjaxSubmit)
.off('click.form-plugin', this.selector, captureSubmittingElement)
.on('submit.form-plugin', this.selector, options, doAjaxSubmit)
.on('click.form-plugin', this.selector, options, captureSubmittingElement);
return this;
}
return this.ajaxFormUnbind()
.bind('submit.form-plugin', options, doAjaxSubmit)
.bind('click.form-plugin', options, captureSubmittingElement);
};
Agreed this is a problem, but use of .selector is necessary for proper handling of ajaxForm's "delegation" option. If you ask me, the "delegation" option should be deprecated altogether and any code adding new <form> elements should be responsible for issuing the corresponding .ajaxForm(~) calls itself.
I'll put together a pull request for this later today.
The selector property is not gone, it is deprecated.
ah, yes. Sorry about that. I picked this out when I was sweeping my code for .live().
Not really sure what the work around will be if/when it is actually removed.
It looks like jQuery 3 finally removed .selector. https://jquery.com/upgrade-guide/3.0/#breaking-change-deprecated-context-and-selector-properties-removed
Has anybody used the plugin with jQuery 3.x? Does it error?
I'm really not sure what this portion of the plugin code is doing, or how to refactor it. Help would definitely be appreciated!