استفاده از متد isFunction در جی کوئری

Ratings
(0)

 

مسئله

فرض کنید یک پلاگین جی کوئری نوشته ایم و می خواهیم بررسی کنیم که آیا یکی از تنظیم ها، یک تابع 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. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال