2012-01-06 14 views
2

jQuery.fn.extendを使用して私のビューに関数を登録したいと思います。そこで私はAsp MVC3アプリケーションの_Layoyt.cshtmlファイルに定義しました。以下はそのコードです。jQuery.fn.extend、MVC3でメソッドがありません

私は

$(document).ready(function() { 
     $('.tags').tagBox({ maxTagCount: 5, initialTags: [] }); 
    }); 

メソッドを呼び出すために、次のコードを使用しますが、私はChromeでページをチェックしたときに、私はエラー

Uncaught TypeError: Object [object Object] has no method 'tagBox' d.extend._Deferred.f.resolveWithjquery-1.5.1.min.js:19 d.extend.readyjquery-1.5.1.min.js:19 c.addEventListener.A

は私が間違って何をやっている参照して私の見解では

<script type="text/javascript"> 
    $.fn.extend({ 
      tagBox :function(options) { } 
     }); 
</script> 

ここに?

答えて

1

$.fn.extendまたは単に$.extendが混乱していると思います。これらは、あるオブジェクトの値を別のオブジェクトに上書きし、そのプロパティに定義された値が存在することを保証するためのものです。あなたが探していると思うものは、jqueryプラグインです。これは1つのシェルです。

(function($){ 

    var _defaults = { 
     your:"defaults", 
     you:"Want to extend" 
    }; 

    $.fn.tagBox = function(options){ 

     var _opts = $.extend({}, _defaults, options); 

     return this.each(function(){ 

     }); 
    }; 
})(jQuery);

This article私が最初にそれらを書き、私は多くの場合、ベースとして例えば戻ってする方法を学び始めたとき、私は基本的に多くのことを教えてくれました。

+0

迅速な返信をありがとうございます。私は$ .fn.extendを使用する前にこれを試してみましたが、結果は同じでした。それで、$ .fn.extendを使うように私のコードを変更したのです。私はあなたが提供した記事を読んで、やり直します。 – Jayanga

+0

私はまだこのエラーを再試行しました。私はいくつかの異なるバージョンのjQueryを試しましたが、まだ関数をcorrenctly呼び出すことはできません。 – Jayanga

+0

jsフィッティングまたは実際の例を提供してください。 – locrizak

1

私はlocrizakの優れた答えに加えて、あなたのコードがまだ動作していない場合、これらのスクリプトはどのような順序でレンダリングされたHTMLに表示されますか?

jqueryライブラリがロードされる前に$.fn.extend(が宣言されていると、動作しません。また、関数拡張が宣言される前にビューで$('.tags').tagBox({ maxTagCount: 5, initialTags: [] });を実行すると、機能しません。スクリプトは、そのように注文する必要があります。

  1. ロードjQueryライブラリ
  2. は、この問題が解決しない場合は
  3. 使用/ HTMLを投稿してみてください、機能拡張

を呼び出すあなたの機能拡張を宣言しますブラウザに表示されるので、何がうまくいかないかを調べて助けてくれます。

関連する問題