Skip to content

Commit

Permalink
Make $#domManip patch jq2.0-compatible
Browse files Browse the repository at this point in the history
  • Loading branch information
Josh Marchán committed Nov 2, 2013
1 parent cec0679 commit 60dbf49
Showing 1 changed file with 17 additions and 10 deletions.
27 changes: 17 additions & 10 deletions util/jquery/jquery.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,16 +116,23 @@ steal('jquery', 'can/util/can.js', 'can/util/array/each.js', "can/util/inserted"

var oldDomManip = $.fn.domManip;

$.fn.domManip = function(args, table, callback){
return oldDomManip.call(this,args,table, function(elem){
if(elem.nodeType === 11){
var elems = can.makeArray(elem.childNodes);
}
var ret = callback.apply(this, arguments);
can.inserted(elems? elems : [elem])
return ret
})
}
$.fn.domManip = function(){
var args = can.makeArray(arguments),
isNew$ = $.fn.jquery >= "2.0.0",

This comment has been minimized.

Copy link
@justinbmeyer

justinbmeyer Nov 26, 2013

Contributor

This could likely have been pre-calculated instead of running each time.

cbIndex = isNew$ ? 1 : 2,
callback = args[cbIndex];

args[cbIndex] = function(elem) {
var isFragment = elem.nodeType === Node.DOCUMENT_FRAGMENT_NODE,

This comment has been minimized.

Copy link
@imjoshdean

imjoshdean Nov 8, 2013

Contributor

Node.DOCUMENT_FRAGMENT_NODE breaks in versions of IE. I'm going to be changing this to

var isFragment = elem.nodeType === 11, // Node.DOCUMENT_FRAGMENT_NODE
targets = isFragment ? can.makeArray(elem.childNodes) : [elem],
ret = callback.apply(this, arguments);
can.inserted(targets);
return ret;
};

return oldDomManip.apply(this, args);
};

$.event.special.inserted = {};
$.event.special.removed = {};

Expand Down

1 comment on commit 60dbf49

@justinbmeyer
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not have been added without tests. Also, no inline docs. Please make sure the code you submit to master has that quality level.

Please sign in to comment.