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を使用してこの問題を再現することができ、すべてが正常です。
私のために働く:http://jsbin.com/iyikuk(出典:http://jsbin.com/iyikuk/edit#html)。このページにはもっと多くのものが必要です。私は上記を取ってJSBinに貼り付けました。私が変更したのはスクリプトの元の場所でした。 –
@ T.J.Crowder投稿したリンクで同じ問題が発生しています。どのブラウザを使用していますか?私が言及したように、私はFFだけでこの問題を抱えています。 Mac OS X 10.7.3でFirefox 11.0を使用しています。 –
私のためにも動作します。また、TJと同じことをやっています。ただし、このサンプルに基づく理由はありません。イベントハンドラを失う最も一般的な方法は、元のノードが破棄され、イベントなしで複製されるようにDOMを変更することです。あるいは新しい '.dialogLink'が追加されています(イベントバインドされていないのでそれはdocument.readyで起動しました) –