2013-03-22 22 views
8

jquery 1.9.1に問題があります。私はそれを検索しましたが、これらは私の問題を解決していません。

$('.sm2_expander').live('click', function() { 
    $(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed'); 
    return false; 
}); 

誰もが "機能を使用する"と言っていますが、今回はコードが動作しません。

$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); 

編集:draggable link

+2

'$("。sm2_expander ")の' on'バージョンは '$(document).on(" click "、" sm2_expander "、func)'です。 '' a.offsite ''がどこにあるのか分かりません。 –

+2

あなたもhtmlを共有することができます –

+0

詳細が必要です。おそらくhttp://jsfiddle.netを使用して問題を説明します。 – prasann

答えて

14

あなたの例では、あなたがセレクタa.offsiteを使用しますがそこにいますあなたのこのセレクタに一致する要素はありませんrページ。それがうまくいかない理由かもしれません。

$(function(){ 
    $(document).on('click', '.sm2_expander', function(){ 
     alert('bye'); 
     $(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed'); 
    }) 
}) 

私はあなたがjquery-migrate-1.1.1.min.js以上を使用する必要が

$(function(){ 
    $(document).on('click', '.sm2_expander', function(){ 
     $(this).closest('li').toggleClass('sm2_liOpen sm2_liClosed'); 
    }) 
}) 
+0

ありがとうございます。それが私の解決です。 –

2

は、あなたのコード内でonliveを交換してみてください:ここに私の使用してprjectページです。

$('.sm2_expander').on('click', function() { 
    $(this).parent().parent().toggleClass('sm2_liOpen').toggleClass('sm2_liClosed'); 
    return false; 
}); 
+0

応答ありがとうございますが動作しません。サンプルページはhttp:// boagworldです。com/demos/sitemap/ –

6

これを試してみてください: -http://jsfiddle.net/trdb9/

JS: -

$(document).on("click", "a.offsite", function() { 
    alert("Goodbye!"); 
}); 

HTML: -

<a class="offsite">Click Me</a> 
+0

応答いただきありがとうございますが動作しません。例ページは:boagworld.com/demos/sitemap –

+0

あなたのデモサイトはjQuery 1.3バージョンを使用しています –

+0

ありがとうブラザーあなたのコードは私のために働きます – sachinM

3

にこれを短縮することができると思います。 jqueryに大きな変化があり、新しい方法を見つけるために.liveに頼っている人がいます。

とにかくそれを試してください、それは動作するはずです。

7

.live()がjQuery 1.3で導入されたため、以前のバージョンでは動作しません。

.live()もjQuery 1.7以降では廃止されました。

選択肢が.on()と.delegate()

を参照してください関連する質問にjQuery 1.9 .live()は既存のコードを移行する方法について関数ではありません。

私は "jquery-1.8.3.min.js"を使用し、私の問題は解決しました。あなたはライブサイトをお持ちの場合は

関連する問題