1

<select>こんにちは、すべてのブラウザーでタグをカスタマイズできるようにする、選択した Jquery プラグインのインストールを試みました。ここをクリックとにかく、このプラグインを自分のサイトに統合しましたが、要素インスペクターに次のエラーメッセージが表示されました..ここをクリック

「TypeError: オブジェクト # にはメソッド 'observe' がありません」

次のコードから

 <script type="text/javascript">
 document.observe('dom:loaded', function(evt) {
var select, selects, _i, _len, _results;
if (Prototype.Browser.IE && (Prototype.BrowserFeatures['Version'] === 6 || Prototype.BrowserFeatures['Version'] === 7)) {
  return;
}
selects = $$(".chzn-select");
_results = [];
for (_i = 0, _len = selects.length; _i < _len; _i++) {
  select = selects[_i];
  _results.push(new Chosen(select));
}
deselects = $$(".chzn-select-deselect");
for (_i = 0, _len = deselects.length; _i < _len; _i++) {
  select = deselects[_i];
  _results.push(new Chosen(select,{allow_single_deselect:true}));
}
return _results;
 });
 </script>

この問題を解決する方法を知っている人はいますか??

4

2 に答える 2

2

このエラーが意味するのは1つだけです。つまりPrototype、htmlドキュメントにないか、スクリプト(コード例から)の実行後にロードされます。より正確な答えを得るには、完全なhtmlコードをどこかに(たとえばJSFIDDLEに)投稿してください。

あなたはそのコードを持っています:

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.8.0.min.js"><\/script>')</script>
</head>

scriptプロトタイプを含む別のタグを配置する前に:

<script src="/path/to/Prototype.js"></script>

そして、Prototype.jsファイルを/path/to/サーバー上のフォルダーに配置します。

次に、Jqueryプロジェクト呼び出しで使用するのでjQuery.noConflict()jQueryインクルード後)、$のシンボルがのシンボルとJquery競合しないようにしPrototypeます。

     <script>
         var $jq = jQuery.noConflict()
     </script>
</head>

そして、すべてのjQuery$$jqページ上のすべてのjsに置き換えます(プロトタイプではなく、Jqueryに関連している場合)

于 2012-09-16T10:08:14.983 に答える
0

document.observeとは何ですか?代わりにwindow.onload=function{}を試してください

<script type="text/javascript">
 window.onload= function(evt) {
var select, selects, _i, _len, _results;
if (Prototype.Browser.IE && (Prototype.BrowserFeatures['Version'] === 6 || Prototype.BrowserFeatures['Version'] === 7)) {
  return;
}
selects = $$(".chzn-select");
_results = [];
for (_i = 0, _len = selects.length; _i < _len; _i++) {
  select = selects[_i];
  _results.push(new Chosen(select));
}
deselects = $$(".chzn-select-deselect");
for (_i = 0, _len = deselects.length; _i < _len; _i++) {
  select = deselects[_i];
  _results.push(new Chosen(select,{allow_single_deselect:true}));
}
return _results;
 };
 </script>
于 2012-10-03T17:18:13.670 に答える