Bug Tracker

Modify

Ticket #5589 (closed enhancement: fixed)

Opened 3 years ago

Last modified 3 years ago

$(undefined) selecting the whole document is confusing

Reported by: iamnoah Owned by:
Priority: major Milestone: 1.4
Component: unfiled Version: 1.3.2
Keywords: Cc:
Blocking: Blocked by:

Description

var mySelector; $(mySelector).click(function() {

window.location = "/foo.html";

});

The above code has a very unexpected and difficult to debug result if mySelector is not initialized or is initialized to null, 0 or "". No error is throw, and no warning is given but suddenly any click in the document will take the user to another page, which is very hard to debug. This could be easily solved by adding something like this to the $ function:

if(!selector && window.console && arguments.length >= 1) {

console.warn("You passed a null/undefined selector argument, the " +

"full document will be selected.");

}

This would not affect calls like $().click since they do not pass any arguments. The intent is to only warn the user if they pass a selector argument that is invalid.

To avoid checking in production code, the $ function could be wrapped on startup only if the console is present:

if(window.console) {

jQuery = window.jQuery = window.$ = (function() {

var orig = jQuery; return function(selector,context) {

if(!selector && arguments.length >= 1) {

console.warn("You passed a null/undefined selector argument, the " +

"full document will be selected.");

} return orig(selector,context);

};

})();

}

Change History

comment:1 Changed 3 years ago by dmethvin

  • Status changed from new to closed
  • Resolution set to fixed

This is fixed in the nightlies and will be in 1.4.

Please follow the  bug reporting guidlines and use  jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.

View

Add a comment

Modify Ticket

Action
as closed
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.