質問: jquery が動作しません。 jqueryプラグインである、multifilter を使いたいと思ってます(http://tommyp.github.io/multifilter/)。はてなブログを使用しており、以下のように導入しても動作しません。 はてなブログhead要素に以下を 本文には以下を書き込んでます。 (function($){ $(document).ready(function() { $('.filter').multifilter() }) }(jquery)); multifilter プラグインは google drive 上にホスティングしています。 safari上で以下のエラーが出てしまいます。 typeerror: undefined is not a function (evaluating '$('.filter').multifilter()') is not a function と出てますので、ホスティングがうまくいってないのかとも思ったのですが、ページのソースを見たところ、スクリプトは読み込まれているようでした。 jsやjqueryはあまりいじったことなく、にっちもさっちいかない状態です。 よろしくお願いします。
回答: safariを知らないので、かなりの推測まじりですが・・・ エラーメッセージからすると、質問者様と同じことを考えますが、 >ページのソースを見たところ、スクリプトは読み込まれているようでした。 ページのソースでは、読み込まれているかはわからないのでは? デバッグツールなどでdomの内容を確認なさって、読み込めているということでしょうか? ひとつのテストとして、読込後に alert($().multifilter); などとしてみて、 function (options) { "use strict"; var settings = $.extend( { 'target' : $('table'), 'method' : 'thead' // this can be thead or class }, options); ・・・ 以下省略 ・・・ が表示されれば、きちんとjqueryに拡張されていることが確認できるはずです。 されない場合は、 1)jsファイルが読み込まれていない。 2)読み込めているが、スクリプト実行中にエラーを起している が考えられます。 もう少し切り分けて、問題がどこにありそうかを調査なさるのが第一歩かと。 検索してみると、『safariの場合に"typeerror: ‘undefined’ is not a function"が出る』というものが数多く見つかります。 イベントのバインドに関するものが大半のようですが、以下あたりが多少は関係あるかも。 http://d.hatena.ne.jp/kkotaro0111/20120819/1345361487 http://www.crossl.net/blog/jquery_click_function_safari_error/ 2番目を見ると、safariを最新版にすることで、対応可能かもしれませんね。 ...って、それじゃ回答になってないじゃん(苦笑)