dandan999
@dandan999

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

jQueryでクラスをつけたものに再度JQueryで操作する。

Q&A

Closed

解決したいこと

jQueryでクラスをつけたものに再度JQueryでアラートを出させたい。

発生している問題・エラー

JQueryでクラスをつけたものをクリックしたときに、アラートを表示させたいが、表示されない。

// ①classをつける。
$(function() {
 
	// ボタンをクリックしたら発動
	$('#button').click(function() {
	$("#button").addClass('button');

	});
});

//②classをクリックしたらアラートを出す。
$(function() {
	// ボタンをクリックしたら発動
	$('.button').click(function() {
		alert("アラートを表示します。")	
	});
});

自分で試したこと

・①classをつける。でclass="button"になっていることを確認。

1

2Answer

「②classをクリックしたらアラートを出す。」のリスナをアタッチするタイミングの問題でしょう。その時点では $('.button') の要素は存在してませんから。

以下のようにしたらどうなりますか?

        // ①classをつける。
        $(function () {

            // ボタンをクリックしたら発動
            $('#button').click(function () {
                $("#button").addClass('button');

                $('.button').click(function () {
                    alert("アラートを表示します。")
                });

            });
        });

        //②classをクリックしたらアラートを出す。
        //$(function () {
        //    // ボタンをクリックしたら発動
        //    $('.button').click(function () {
        //        alert("アラートを表示します。")
        //    });
        //});
1Like

Comments

  1. @dandan999

    Questioner

    ②でちゃんとアラートが出ました。ありがとうございます。

それなら その親にイベント仕込んで移譲したらいいのではないでしょうか?

予め親(.parent)配下にしておけば次の様に書けます。

// ①classをつける。
$(function() {
 
	// ボタンをクリックしたら発動
	$('#button').click(function() {
	$("#button").addClass('button');

	});
});

//②classをクリックしたらアラートを出す。
$(function() {
	// ボタンをクリックしたら発動
	$('.parent').on('click', '.button', function() {
		alert("アラートを表示します。")	
	});
});
1Like

Comments

  1. @dandan999

    Questioner

    アラート表示できました。ありがとうございます。

Your answer might help someone💌