Discussions

Q2回目以降のclickイベントが発生しない

【やりたいこと】
クリックされた都道府県をもう一度クリックすると、市町村が隠れるようにしたい。
具体的には、宮城県の市町村の数が増えてきて見づらいので、宮城県をクリックした後にもう一度宮城県をクリックすると市町村を隠せるようにしたい。

【問題】
クリックしたオブジェクトをもう一度クリックしても、イベントが発生しない。
例えば、コード中のaccordion関数にslideToggle()を書くと、上下のスライドを実現できるはずだけど、2回目以降のclickイベントが発生しない。

ご教示のほど、よろしくお願いします。
不明点ございましたら、メッセージをいただければお答えします。

Sample Code

AAnswer to: 2回目以降のclickイベントが発生しない

kyo_ago

修正してみましたー
こんな感じでどうでしょうか?

以下の部分を変更しています。

1. accordion内で閉じていた場合の処理を追加
2. switchMapが.prefを含む全てのaに呼ばれていたので.cityのみに制限
3. preventDefaultでイベントをキャンセル

naoty

完璧です!有難うございます。
return falseとprevent Defaultの区別がついていなかったです。あと、イベントを呼び出すオブジェクトにも配慮しないと予期せぬイベントも発生させてしまうことも理解しました。

さっそく修正しました。

Post a question

You can post JavaScript, HTML, CSS related questions with attached reference to actual codes and get the answers likewise.

Ask a question

  • 1. Click the ‘Post a question’ above

  • 2. Enter question details, reference code, and click ‘Add question’ button

  • 3. Question will be paired with the code on display

Add an answer

  • 1. Choose a question

  • 2. Enter answer details, attach the reference code and click ‘add answer’ button

  • 3. Your answer will accompanied with attached code

Tag