استفاده از متد isFunction در جی کوئری
مسئله
فرض کنید یک پلاگین جی کوئری نوشته ایم و می خواهیم بررسی کنیم که آیا یکی از تنظیم ها، یک تابع callback (پاسخ دهنده) معتبر هست یا نه؟
راه حل
(function($) {
$.fn.myPlugin = function(settings) {
return this.each(function() {
settings = $.extend({ onShow: null }, settings);
$(this).show();
if ( $.isFunction( settings.onShow ) ) {
settings.onShow.call(this);
}
});
};
$(document).ready(function() {
$('div').myPlugin({
onShow: function() {
alert('My callback!');
}
});
});
})(jQuery);
توضیحات
در حالی که زبان جاوا اسکریپت عملگر typeof را به ما ارائه می دهد، اما باید نتایج متناقض و موارد لبه ای را نیز در مرورگرهای وب به حساب بیاوریم. جی کوئری یک متد به نام isFunction() به ما ارائه می دهد تا کار برنامه نویسان آسان شود. شایان ذکر است که از ورژن 1.3 به بعد، این متد بر روی توابعی که کاربران تعریف می کنند کار می کند و نتایج متناقضی (inconsistent results) را برای توابع داخلی(built-in) مانند زیر برمی گرداند:
jQuery.isFunction( document.getElementById );
که در برخی ورژن های اینترنت اکسپلورر، مقدار false را برمی گرداند.
{module کمک نقدی به نویسنده}
- بازدید: 457
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.