GSPでは、ファイルのリストを表示する次のようなコードを記述しました。
<g:each in="${fileList}" var="file">
<div>
<a href="#" onclick="remove('${file.attachmentId}')">
<span class="glyphicon glyphicon-remove"></span></a>
<a href="/forms/landing/attachment/${file.attachmentId}" >${file.name}</a>
</br>
</div>
</g:each>
そして私のjavaScriptコードは次のとおりです。
function remove(attachmentId) {
$(document).ready(function(){
$('.glyphicon-remove').click ( function(e){
e.preventDefault();
$(this).parent().parent().remove();
$.ajax({
url: "${g.createLink(controller: "landing", action: "deleteSelectedFile")}",
data: {
attachmentId: attachmentId
},
success: function(data){
alert("Success");
}
});
});
});
}
選択したattachmentIdをパラメーターとして渡してonclickremove()関数を呼び出しています。ファイルの削除をダブルクリックして初めて。
初めてファイルを削除するのをダブルクリックした後だけなのはなぜですか?
よろしくお願いします。
注:アプリケーションはIEで実行されています。
このタグ以来
<div id="remove">
g:eachタグ内に存在する場合、同じページに複数のIDを作成しています。関数remove()が呼び出されると、IDとして「remove」が見つかったすべてのdivが削除されます。各IDを一意にすると、問題が解決します
jQueryを使用しているので、このコードを使用してみてください。これにより、一意のIDが使用されなくなります。
<script>
$(document).ready(function(){
$('.glyphicon-remove').click ( function(e){
e.preventDefault();
$(this).parent().parent().remove();
});
});
</script>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加