2012-03-28 4 views
1

jQuery 1.7.1とjQUery-UI 1.8.18を使用しているWebページで、ドキュメントが準備できたらアラートボックスに$ .uiを出力すると、[object Object]が表示されます。しかし、Firefoxを使用しているときに、クリックイベントハンドラで$ .uiを出力すると、結果として「未定義」になります。他のブラウザ(IE、Chrome、Safariの最新バージョン)では、リンクをクリックしても結果は[オブジェクトオブジェクト]です。クリックイベントハンドラでOS X上のFFがjQuery-UIを失うのはなぜですか?

はここに私のHTMLページです:$(this).dialog is not a function:この記事で

<!doctype html> 
<html> 
<head> 
    <title></title> 

    <script src="Scripts/jquery-1.7.1.js" type="text/javascript"></script> 
    <script src="Scripts/jquery-ui-1.8.18.js" type="text/javascript"></script> 

    <script type="text/javascript"> 
     $(document).ready(function() { 

      alert($.ui); // ALERT A 

      $(document).on("click", ".dialogLink", function() { 
       alert($.ui); // ALERT B 
       return false; 
      }); 
     }); 
    </script> 

</head> 
<body> 
    <a href="#" class="dialogLink">Click me!</a> 
</body> 
</html> 

、私はその最も単純な形式私はここに記述したた別の問題に帰着しました。実際の問題は、問題がどこにあったかをピンポイントで示した元の問題とは異なるため、わかりやすくするために新しい投稿を作成しました。

UPDATE:

私は単にalert($);と私の警告を交換した場合、私はこのアラートAの結果を得る:

function (selector, context) { 
    return new jQuery.fn.init(selector, context, rootjQuery); 
} 

と警告Bについては、この1:

function (a, b) { 
    return new d.fn.init(a, b, g); 
} 

これを$が何であるか分かりませんが、私には意味がありません...

UPDATE 2:

私は唯一のFirefoxは、Windows 7上で動作している上でOS X上のFirefoxを使用してこの問題を再現することができ、すべてが正常です。

+1

私のために働く:http://jsbin.com/iyikuk(出典:http://jsbin.com/iyikuk/edit#html)。このページにはもっと多くのものが必要です。私は上記を取ってJSBinに貼り付けました。私が変更したのはスクリプトの元の場所でした。 –

+0

@ T.J.Crowder投稿したリンクで同じ問題が発生しています。どのブラウザを使用していますか?私が言及したように、私はFFだけでこの問題を抱えています。 Mac OS X 10.7.3でFirefox 11.0を使用しています。 –

+1

私のためにも動作します。また、TJと同じことをやっています。ただし、このサンプルに基づく理由はありません。イベントハンドラを失う最も一般的な方法は、元のノードが破棄され、イベントなしで複製されるようにDOMを変更することです。あるいは新しい '.dialogLink'が追加されています(イベントバインドされていないのでそれはdocument.readyで起動しました) –

答えて

4

OSXのFirefoxのインストールでは、ページに悩まされているアドオンが必要だと思います。具体的には、ページロード後にjQueryの圧縮されたバージョンをページにロードしていると思います。これは奇妙なことですが、見ている動作を説明しています。 $の警告では、圧縮されていないバージョン(return new jQuery.fn.init(selector, context, rootjQuery);)から圧縮されたバージョン(return new d.fn.init(a, b, g);)に変更されていることが明確に示されており、jQueryを再ロードすると$が完全に新しいバージョンに置き換えられます。たとえば、ページの読み込み後に圧縮されたjQueryを読み込んで、症状に合ったものがあります。

投稿したページで$または$.uiが再定義される理由はありません。Chrome 17、Firefox 11、およびLinux上のOpera 11(Ubuntu 11.10)、Windows 7上のIE9、Firefox 5、Safari 5、Opera 11など。期待どおりの動作をしています。

すべてのアドオンを無効にしてもう一度お試しください。それでも起こった場合、私はFirefoxをマシンから完全に拭き取り、最初から再インストールします。

+0

Firefoxをセーフモードで起動すると、問題が解決しました。問題の原因となったアドオンを特定してみたところ、問題の再現はできませんでした。 –

+0

@ Jean-FrançoisBeauchamp:私はFirefoxを完全にアンインストールし、最初から再インストールします。時にはパラノイアは生存形質です。 –

関連する問題