リンクがクリックされたときに外部ページをロードする数行の jQuery コードがあります。
$(document).ready(function() {
$(".link").click(function (e) {
e.preventDefault();
var $urlToLoad = $(this).attr('href');
$("#loadarea").load($urlToLoad, function(data){
$("#loading").fadeIn('fast').fadeOut('fast');
$("#loadarea").hide().fadeIn('slow');
return false;
});
});
});
これはうまくいきます。ただし、このページに不可欠なこの 1 行の追加コードを追加すると、「$ は未定義です」というエラーが表示されます。
http://api.jquery.com/jQuery.noConflict/ですべての手法を試しましたが、競合を解決できません。
function goto(id, t){
$(".contentbox-wrapper").animate({"left": -($(id).position().left)}, 600);
$('#slide a').removeClass('active');
$(t).addClass('active');
}
私は var jq=jQuery.noConflict(); を試しました。$ を置き換えますが、これでは問題は解決しません。
私は、この競合を解決するのに十分な jQuery を理解していないと思います。何が起こっているのかを説明して、これから学ぶことができる人に本当に感謝します。
まとめると、次のようになります。
<script>
$(document).ready(function() {
$(".link").click(function (e) {
e.preventDefault();
var $urlToLoad = $(this).attr('href');
$("#loadarea").load($urlToLoad, function(data){
$("#loading").fadeIn('fast').fadeOut('fast');
$("#loadarea").hide().fadeIn('slow');
return false;
});
});
});
function goto(id, t){
$(".contentbox-wrapper").animate({"left": -($(id).position().left)}, 600);
$('#slide a').removeClass('active');
$(t).addClass('active');
}
</script>
次に、スクリプトを起動するインライン コードを 1 つ用意します。
(a class="active" href="#" onClick="goto('#kr', this); return false">テスト
奇妙なことは、エラーがあっても、2回目のクリックで起動することです。
///////////////////////////////////
競合/エラーは、インライン JavaScript を変換することで解決されました。
以下のHuangismに感謝します。