動作しないjqueryのを使用してDIV:選択は私が動的に作成された要素にイベントリスナーを持っている
<script>
$(document).on('change', '.inputfile', function() {
var name = ($(this).val().split('\\').pop());
selectFile(name);
});
</script>
ファイルを選択したら、私は、ファイル名そのものを示す段落を追加したいと思います。私の問題は、jQueryのセレクタが動作していないということです。
function selectFile(filename) {
alert(filename);
var classes = $(this).closest('.inputgroup');
$('classes').append('<p>'+filename+'</p>');
}
私は、そのクラスにはいくつかのdiv要素があるため、クラス= inputgroupと最寄りのdiv内の段落を追加したいと思います。 シンプルな$('.inputgroup').append('<p>'+filename+'</p>');
を使用するとOKです。段落が作成されます。 これはHTMLです:
<div class="inputgroup">
<label class="btn btn-default btn-info" style="margin-top: 8px">
Browse <input type="file" style="display: none;" class="inputfile"/>
</label>
<button type="button" class="btn btn-outline-danger" onclick="myAjax()">Ok</button>
<span id="remove_field" class="glyphicon glyphicon-remove" aria-hidden="true" style="vertical-align: middle"></span>
</div>
以下のように私は '$(この).closest(」。inputgroup ')と信じています;'範囲外であると動作しないはずです、その時点で$(' この)ドキュメントです。 –
@DIEGOCARRASCAL(HTMLファイル内の)イベントハンドラに入れても何の効果もありません – slash89mf
jQuery '$(this)'はイベントを生成するDOM要素ですが、この要素を指していますイベントが実行される関数内でのみ有効です... $(document).on( 'change'、 '.inputfile'、function(){...} 'は、$(this ).closest( '。inputgroup'); '$(this)'が 'id ="。inputfile "'を持つ要素であるため –