@ Алекс правильно, все, что вам нужно, это заменить func();
на func.call(this);
, и это будет работать.Однако я хотел бы отметить, что вы делаете 2 избыточных вызова конструктора jQuery в вашем плагине:
$.fn.touchBind = function(func) {
//this already refers to a jQuery object
this.live('touchmove', function() {
//this refers to a DOM element inside here
$(this).addClass('dragged');
});
//this already refers to a jQuery object
this.live('touchend', function() {
//this refers to a DOM element inside here
if ($(this).hasClass('dragged') == false) {
func.call( this );
}
});
return this;
}
Вы можете проверить это следующим образом:
$.fn.whatIsThis = function(){
return "jquery" in this ? "jQuery object" : "Something else";
};
И затем:
console.log( $("div").whatIsThis() );
//"jQuery object"