プロジェクトに画像アップローダーがあり、完璧に動作するAjaxで画像をアップロードしています。ページを更新せずにすぐにアップロードされた画像を表示します。ここで私は、画像をアップロードするために使用していたコードは次のとおりです。新しいDivを作成しました.Ajaxコールと画像/リンクのクリックが無効になります。
<script>
$(function() {
$('#btnUpload').click(function() {
var fileUpload = $("#FileUpload1").get(0);
var files = fileUpload.files;
var test = new FormData();
for (var i = 0; i < files.length; i++) {
test.append(files[i].name, files[i]);
}
$.ajax({
url: "../UI/Upload.ashx",
type: "POST",
contentType: false,
processData: false,
data: test,
success: function (result) {
alert(result);
//This section refreshes the div with uploaded images and shows images without full page refresh
$('#divImages').load(document.URL + ' #divImages');
},
error: function (err) {
alert(err.statusText);
}
});
});
});
</script>
<input type="file" id="FileUpload1" />
<input type="button" id="btnUpload" value="Upload Files" />
<div id="divImages" clientidmode="Static" runat="server">
<asp:Label ID="labelImages" ClientIDMode="Static" runat="server"></asp:Label>
</div>
問題は、画像をアップロードした後で、画像がコンテンツに示されているが、画像をクリックすることができないと「削除」リンクが関連付けられていますすべての画像もブロックされているようです。次に、フルページを更新すると、画像とリンクのクリックが機能します。なぜそれが起こるかわからないのですか?ブラウザの検査要素では、私は、新たに以下のように内部に作成DIV見ることができます:
<div id="divImages"> //The newly created div after partial refresh with Ajax every time I upload image
<div id="divImages" clientidmode="Static" runat="server">
<asp:Label ID="labelImages" ClientIDMode="Static" runat="server"></asp:Label>
</div>
</div>
それは、画像/ボタンまたは何か他のものをクリックして私を防止していますか?それが指摘されている場合は感謝します。
これは私が(基本的に私は、ボタンのようにリンクを使用しています)リンクした画像を削除するために使用していますコードです:
$('#divImages a.deleteLink').click(function() { //Ajax used to delete images from 'Images' folder with jQuery
var image = $(this).attr("img");
$.ajax({
type: "POST",
url: "../UI/DeleteImage.ashx",
data: "imageName=" + image,
contentType: 'application/x-www-form-urlencoded',
success: function (response) {
if (response == "true") {
$('#divImages a.imageLink[imgsrc*=\"' + image + '\"]').fadeOut();
$('#divImages a.deleteLink[img=\"' + image + '\"]').fadeOut();
}
},
error: function (response) {
alert('There was an error. ' + response);
}
});
});
});
を私の説明を参照してください。これはjqueryか純粋なaspですか? – Sherlock
私はC#を使用してコードビハインドから動的コントロールをバインドし、フロントエンドでAjaxを使用してボタンのクリック(基本的にはHyperLinkをボタンとして使用)を行っています。私は削除のコードを投稿しました。このセクションは、Ajaxの部分リフレッシュ後に無効になります。 –
は、$( '#divImages A.deleteLink')ではなく、動的に作成された要素からイベントを捕捉するためにjquery 'on'を使用します。 – Sherlock