2012-03-13 4 views
0

私はチェックボックスだけでなく、コンテナもクリックしたときにチェックボックスをチェックしようとしています。私が直面した問題は、それはコンテナをクリックしていたので、2回発射しました。私はうまく動作するように見える次のソリューションを思いついたが、私はこれを行うための簡単な方法があると感じている、私は本当に短いとコンパクトなjavascriptを学ぶために探しているので、任意のアドバイスが役立つだろう:)javascriptのチェックボックスコンテナ - これを書くための簡単な方法がある

http://jsfiddle.net/masedesign/8q5TQ/

答えて

2
$(function(){ 
    $('td.cell input').click(function(e){ 
     e.stopPropagation(); 
    }); 

    $('td.cell').click(function(){ 
     $(this).find('input').click(); 
    }); 
});​ 

e.stopPropagation()方法は、バブリングからのイベントを防止します。

0

楽しみのためだけに、私はjavascriptをせずに同じ効果を達成しようとした:http://jsfiddle.net/g6Sx7/2/(ただし」の場合:このフィドルを見て、あなただけの新しいブラウザで動作する、純粋なCSSのソリューションに興味があるなら(それは:checked pseudoclassesに依存しています)興味を持って再私は古いIE用のjsフォールバックとそれを向上させることができます)

編集:JSとフィドルは、フォールバック:http://jsfiddle.net/g6Sx7/7/このコードはIE6でも正常に動作する必要がありますが、ここでの問題は、CSSのサポート(隣接兄弟演算子についてです+はIE6ではサポートされていません):全体のエフェクトはそこでは機能しませんが、とにかくブラウザのボックスシャドウを持つことはできません...だから、大きな問題ではないと思います。

+0

これは面白いです。IE6に至るまでサポートしています。これらは1秒間に約1,000人のユーザーを表示するので、堅実である必要があります:) – stewart715

+0

私の更新を参照... – fcalderan

0

チェックボックスをオンにしたときに他のタスクを実行していない場合、つまり、あなたが書いたjsはボックスをクリック可能にするためのものです.JSではなくCSSアプローチをとることをお勧めします。ここ

http://jsfiddle.net/8q5TQ/6/

注作業例です:これは(私のマシンにインストールされた最新の)IE7/8月9日FFで動作とChrome(最新のは私のマシンにインストール)

更新:(ウルを読んだ後に私はIE6を持っていない(申し訳ありません)が、quirkのモードで試してうまくいきます。これが助けて欲しいと思っています:)

関連する問題