Jquery plugins 创建JQuery插件

Jquery plugins 创建JQuery插件,jquery-plugins,Jquery Plugins,我已经按照教程创建了一个网站菜单,这涉及JQuery来提供一些转换 我已经让它按预期工作,但是为了证明我理解这个新代码和框架,并且为了遵循开发指南,我想将菜单代码转移到插件 工作(非插件)版本: 它与UL标签ID=main菜单一起出现在.ascx中 <script type="text/javascript"> NavBarMenu(); </script> 不工作版本: 现在创建了插件代码,NavBarMenu函数从.ascx调用如下: <script

我已经按照教程创建了一个网站菜单,这涉及JQuery来提供一些转换

我已经让它按预期工作,但是为了证明我理解这个新代码和框架,并且为了遵循开发指南,我想将菜单代码转移到插件

工作(非插件)版本: 它与UL标签ID=main菜单一起出现在.ascx中

<script type="text/javascript">
    NavBarMenu();
</script>
不工作版本:

现在创建了插件代码,NavBarMenu函数从.ascx调用如下:

<script type="text/javascript">
    $("#MainMenu").NavBarMenu();
</script>
但是,$menu\u items变量是否未填充

这个(第二个示例)不应该等同于$(“#主菜单”)(第一个示例)

我遵循了这个示例,其中为this指针切换了JQuery选择器


提前感谢:D

一定还有其他因素影响我的实施,我会重新考虑

作为调查的一部分,我已经创建了2个JSFIDLE页面,并且已经证明JQuery选择器可以在插件中替换为this指针

小提琴细节第一个例子:

相当于

小提琴细节第二个例子:

<script type="text/javascript">
    $("#MainMenu").NavBarMenu();
</script>
(function($) {

    $.fn.NavBarMenu = function() {
        var $menu_items = this.children('li');
$('input[type=button]').click( function() {
    $( "div" ).css( "background", "green" );
});
$.fn.greenify = function() {
    this.css( "background", "green" );
};

$('input[type=button]').click( function() {
    $( "div" ).greenify();
});