質問

あなたがこれを行うには良い方法を知っている場合は、

そして、私に知らせてください。 右の私は、ボタン、グラフや表がたくさん含まれていますページを持っています。 私は、イベントプロパゲーションの停止については読んだことがあると、それは私が使うことになるものです。 私はcerain要素のヘルプを有効にしたいです。私は助けを有効にdivタグの上にカーソルを変更する]チェックボックスを持っています。私は何をしたい通常のクリック動作の前にヘルプ機能を付加されます。

基本的にはこのようなものです。

<input type="button" value="Click me" onclick="alert ('hello')" />

私が欲しいのはチェックボックスがクリックされた場合、私はCSSクラスを追加します(まだ行って)、その後、私は通常、クリックする前にクリックハンドラを追加することです。要素がクリックされると、その後helpfunctionが実行され、デフォルトボタンのクリックハンドラが発生しません。ヘルプ]チェックボックスがオフになっているとき、私はヘルプ機能を削除します。 私は、各要素のためにこれをhardocdeし、チェックボックスがチェックされているかどうかを確認するためにhelperfunctionにチェックを持つことができることを実現します。しかし、私はそれを行うための、より一般的な方法を好むだろう。

おかげ

ジョン

役に立ちましたか?

解決

        $(":button").each(function() {

            // your button
            var btn = $(this); 

            // original click handler
            var clickhandler = btn.attr("onclick");
            btn.attr("onclick", "return false;");

            // new click handler
            btn.click(function() {

                if ($("#chkbox").attr("checked") == true) {

                    // TODO: show your help
                    // TODO: catch event

                }
                else {

                    clickhandler();

                }
            });
        });

他のヒント

私が思うに、あなたがバインドで遊んしたい/この場合にはバインド解除 - 参照のhttp:/ /docs.jquery.com/Events/unbind#typefnする

チェックボックスを選択するときに

あなたは、ボタンの上に新しいクリックイベントをバインドすることができます - と後でそれらをバインド解除します。

あなたはおそらくもEvent.preventDefaultで動作する必要があります(のhttp://docs.jqueryあなたがそれをしたいいけない場合、デフォルトのクリック動作を抑制するために.COM /イベント/ jQuery.Event の)

あなたはの同類何かを使用します

$("a").bind("click", function(event){
 if ($("#helpcheckbox").attr('checked')
 {
  event.preventDefault();
  // do something
 }
});

多くのコードがなければ、より正確には難しいます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top