Возвращает холст, потому что это то, что возвращается из функции isBlank
. return this.each(...)
возвращает объект jQuery, isBlank
был вызван.
Вам необходимо установить переменную перед .each
, установить ее в значение true или false, если необходимо, а затем вернуть ее вместо.
Примечание. Внутри .each
, return false
функции, такие как break
и return true
, функции, такие как continue
.
.
Пример:
(function ($) {
$.fn.extend({
isBlank : function() {
var ret = true;
this.each(function () {
var context = this.getContext('2d'),
imageData = context.getImageData(0, 0, this.offsetWidth, this.offsetHeight);
for (var i = 0; i < imageData.data.length; i += 4) {
if (imageData.data[i+3] !== 0) {
ret = false;
}
}
});
return ret;
}
});
})(jQuery);