如何创建一个返回bool的jQuery函数?

Dav*_*Dev 2 jquery

我怎样才能创建一个类似的jQuery函数

$.MyFunction(/*optional parameter*/)?
Run Code Online (Sandbox Code Playgroud)

哪个会回归bool?

注意:

我试过这个:

jQuery.fn.isValidRequest = function (options) {

    return true;
}

// I'm contending with Prototype, so I have to use this    
jQuery(document).ready(function ($) {    

    // and jQuery 1.2.6, supplied by the client - long story
    $('a').livequery('click', function () {

        alert($.isValidRequest("blah"));
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

但它在alert()上崩溃了

Microsoft JScript runtime error: Object doesn't support this property or method
Run Code Online (Sandbox Code Playgroud)

这最终有效:

jQuery.isValidRequest = function (options) {

    return true;
}
Run Code Online (Sandbox Code Playgroud)

ova*_*riq 5

对于您打算从jQuery 实例调用的函数,您可以像这样定义它:

$.fn.MyFunction = function(options)
{
  // return bool here
};
Run Code Online (Sandbox Code Playgroud)

并像任何其他jQuery方法一样调用:

$('selector').MyFunction(...);
Run Code Online (Sandbox Code Playgroud)

打算从全局jQuery对象(或其$别名)调用的函数将直接附加到该对象:

$.MyFunction = function(options)
{
  // return bool here
};
Run Code Online (Sandbox Code Playgroud)

并以同样的方式打电话:

$.MyFunction(...);
Run Code Online (Sandbox Code Playgroud)

请注意,为了简洁起见,我使用了$ .fn - 如果阻止jQuery使用$ alias与其他库兼容,这可能会导致问题.附加插件功能的推荐方法是:

(function($) // introduce scope wherein $ is sure to equate to jQuery
{ 
  $.fn.MyFunction = function(options) 
  { 
    // return bool here 
  };
})(jQuery); // conclude plugin scope
Run Code Online (Sandbox Code Playgroud)

还要注意大多数jQuery函数返回this,以启用链接; 如果您选择返回其他值,您将无法执行此操作.一定要清楚地记录你的函数返回一个布尔值,否则你会发现自己想知道为什么$("...").MyFunction().hide()以后会破坏它.

你可以在这里阅读更多关于扩展jQuery的内容:
扩展jQuery - 插件开发
和jQuery文档:
插件/创作