2016-04-27 3 views
0

トグルは、この名前付きクラスを持つすべての要素に適用されます。これを私がクリックした要素だけに変更するには?クリックした要素のみをどのように切り替えることができますか?なぜ「クリック」しても発砲しないのですか?

<input type="file" id="file-input" multiple> 
<div id="file-list"> 
</div> 

$('#file-input').change(function(e) { 
    for (var i = 0, f; f = files[i]; i++) { 

     var reader = new FileReader(); 
     reader.readAsBinaryString(f); 
     .... 

     reader.onload = function(e) { 
     var label1, text1="Text1", labelEdit; 
     label1 = '<span class="editable">' + text1 + '</span> + 
        '<input class="editable" type="text" style="display:none">' 
     labelEdit = "<a class="edit">Edit</a> 

     $('file-list').append(label1, labelEdit);    

    } 
    } 
} 

$('.edit').click(function() { 
    $(this).closest('.editable').toggle(); 
    alert('clicked'); 
}); 

「編集」リンクの前にラベルと入力を切り替えようとしています。何とかクリックが発射されていません。私は何が欠けていますか?

+0

よう

// your code here label1 = '<span><span class="editable">' + text1 + '</span> + '<input class="editable" type="text" style="display:none"></span>'; labelEdit = "<a class="edit">Edit</a>"; // some code again 

のコードでは、このように見えるかもしれません –

答えて

0

すべてのラベルをラップし、たとえばspanのようなタグに入力してからclickイベントを使用してクリックしたターゲット要素を取得してから、このターゲットを使用してJQuery prev()メソッドで前の兄弟を取得して切り替えます。あなたの問題を説明するために実施例を提供し、この

$('.edit').click(function (e) { 
    $(e.target).prev().toggle(); 
}); 
関連する問題