質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1373閲覧

タグ機能を実装しています

bouyomisan

総合スコア87

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/05/16 08:15

自作でタグ機能のついた入力欄を実装しています。
teratail のようにエンターキーを押すと色つきでタグっぽく表示させることはできたのですが、 ×ボタンを押すと消えるようにしたいのですがうまくいきません。
this.parentUntil("li").remove();
というようにしたのですが、どうも消えません。
this.remove();
と実験的に×ボタンだけ消そうとしたら一番目のタグの×ボタンだけ消えて、2個目以降はボタンをおしても消えません。

ボタンを押したタグをうまく消すにはどのようにしたらいいのでしょうか?

イメージ説明

html

1 2<div class="wrapper"> 3 <ul class="tag-wrapper"> 4 <li class="tag-content"> 5 <span class="tag-label">タグ</span> 6 <a><span class="text-icon">×</span></a> 7 <input class="tag-hidden-field" value="タグ" type="hidden"> 8 </li> 9 <li> 10 <input id="tag-input" class="tag-input ui-autocomplete-input" placeholder="Press Enter or Space" autocomplete="off" type="text"> 11 </li> 12 </ul> 13</div> 14 15 16 17 18 19<script> 20$(function() { 21 $("#tag-input").focus(function(){ 22 $(this).css("background","#b3eaef"); 23 }).blur(function(){ 24 $(this).css("background","#fff"); 25 }); 26 27 function add_tag (text) { 28 var $tag_li = "<li class='tag-content'>" 29 + "<span class='tag-label'> " + text + "</span>" 30 + "<a><span class='text-icon'>×</span></a>" 31 + "<input class='tag-hidden-field' value='" + text + "' type='hidden'>" 32 + "</li>" 33 return $tag_li 34 } 35 36 $("#tag-input").on("keydown", function(e){ 37 if(e.keyCode == 13){ 38 var $text = this.value 39 this.value = "" 40 $("#tag-input").before(add_tag($text)) 41 } 42 }); 43 44 $(".text-icon").click(function(){ 45 this.remove(); 46 }); 47}); 48</script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javascript

1 $(".text-icon").click(function(){ 2 this.remove(); 3 });

javascript

1$(".tag-wrapper").on('click', ".text-icon",function(){ 2 this.remove(); 3 });

に変更したらいかがでしょうか?

投稿2017/05/16 08:36

mirainonakamura

総合スコア137

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bouyomisan

2017/05/16 08:41

おお、できました! どうして僕の場合だと失敗したのでしょうか? もしよければお教えください。
mirainonakamura

2017/05/16 08:45

追加した要素に対しても実行したい click イベントの文 $("#click").on("click",".box",function(){ //クリック時に実行する内容 }); $(先祖セレクタ).on("click","対象セレクタ",function(){ }); http://9-bb.com/jquery-click/ こちらに上手くまとまっておりました。
bouyomisan

2017/05/16 08:48

あとから追加したから駄目だったのですね! こんなの知りませんでした。ありがとうございますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問