ConectTheDots314
@ConectTheDots314

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

jqueryでボタンをクリックして色を任意に変える機能をコールバック関数を使用して実装したい

解決したいこと

jqueryでボタンをクリックして色を任意に変える機能をコールバック関数を使用して実装したい

実装したい機能

        $("#jsi-q6").on("click", function () {
          $(this).css("color", "red");
        });
        $("#jsi-q7").on("click", function () {
          $(this).css("color", "blue");
        });

自分で試したこと

[jquery 色を変える コールバック関数]など検索するも解決方法が見つかりませんでした。

0

1Answer

コード自体は特に問題はなさそうですが、情報が少ないので以下の部分ご確認ください。

①Htmlが読み込まれる前にイベントハンドラをセットしている

HTML(DOM)の読見込み→ $('#hode').on('click', function() {}) の順になるように書くことで
要素がクリックされたときになにかの処理を行いますが、逆に
$('#hode').on('click', function() {})→HTML(DOM)の読見込み
の順にしてしまうとイベントを設定したい要素がないのに設定してしまう事になり動きません。

(色を変えたい要素(ボタン等)が他の処理で後から追加されている場合も同じ考え方で、要素が追加された後で$('#hode').on('click', function() {})とする必要があります。)

↓参照

②変更の対象を間違えている

$(this).css("color", "blue"); で変更しようとしている「色」は「背景色」ではなく、「文字の色」なので、そこの勘違いが起きているのでは・・・?という印象を受けました。

③htmlとjavascriptのidの不一致

javascript 側で$("#jsi-q6").on("click", function () {} としてありますが、html側も間違いなく
<input type="button" id="jsi-q6"> のようにid="jsi-q6"で記載されているでしょうか。


↓サンプル
https://jsfiddle.net/czjkLbeq/12/

※開発者ツールからエラー等出ていたらそちらも確認すると繋がりやすいと思いますので、解決しなければご確認ください。

1Like

Comments

  1. お時間いただいて丁寧に返信いただいてありがとうございます。
    情報が少なく稚拙ですみません。

    後ほど詳細をお送りいたします。またご確認いただけるとありがたいです。
  2. 以下のようにコールバック関数を下に置いてクリックしたらテキストの色が変わるようにしたいと考えています。


    {code} 
    $("#jsi-q9").on("click", function () {
    hiddenTarget($(this), 100);
    });

    $("#jsi-q10").on("click", function () {
    hiddenTarget($(this), 500);
    });

    function hiddenTarget($target, period) {
    $target.slideUp(period);
    }
    },
    {/code}

Your answer might help someone💌