Jquery 1.9.1に問題があります。私はそれを検索しましたが、これらは私の問題を解決していません。
$('.sm2_expander').live('click', function() {
$(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
return false;
});
誰もが「on関数を使う」と言っていましたが、今回はコードが機能しません。
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });
編集:これは私の使用しているプロジェクトのページです: ドラッグ可能なリンク
あなたの例では、セレクタa.offsite
を使用しましたが、このセレクタに一致する要素がページにありません。それが機能しない理由かもしれません。
$(function(){
$(document).on('click', '.sm2_expander', function(){
alert('bye');
$(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
})
})
これを短くして
$(function(){
$(document).on('click', '.sm2_expander', function(){
$(this).closest('li').toggleClass('sm2_liOpen sm2_liClosed');
})
})
.live()はjQuery 1.3で導入されたため、以前のバージョンでは機能しません。
。live()もjQuery 1.7以降で非推奨になっています。
代替は.on()と.delegate()です
関連する質問を参照してくださいjQuery 1.9 .live()は、既存のコードを移行する方法に関する関数ではありません。
「jquery-1.8.3.min.js」を使用して問題を解決しました。
これを試してください:-http://jsfiddle.net/trdb9/
JS:-
$(document).on("click", "a.offsite", function () {
alert("Goodbye!");
});
HTML:-
<a class="offsite">Click Me</a>
jquery-migrate-1.1.1.min.js
以上を使用する必要があります。 jquery
には大きな変化があると思います。1つは、.live
に依存するすべての人に新しい方法を見つけるようにすることです。
とにかく、それを試してみればうまくいくはずです。
コードのlive
をon
に置き換えてみてください。
$('.sm2_expander').on('click', function() {
$(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed');
return false;
});
ライブサイトがある場合は、jQuery Migrateの使用をお勧めします
https://github.com/jquery/jquery-migrate/
廃止予定の必要な機能が自動的に追加されます。