为什么Javascript在IE中不起作用
问题描述:
我有一段Html,我有用户点击一个链接(删除),然后页面显示'确认删除'按钮。当点击确认删除按钮时,JavaScript执行Ajax调用来执行删除操作。这在Chrome中非常适用,但不适用于Internet Explorer(v11)。为什么Javascript在IE中不起作用
在Chrome中调试时,我可以看到调用的JavaScript,但不能在Internet Explorer中看到。
该应用程序是MVP。这是渲染HTML:
<td>
<a href="/project/edit">Edit</a> |
<a href="/project/details">Details</a> |
<a class="delete-link" href="javascript:void(0);">Delete</a>
<div class="btn btn-primary delete-confirm" style="display: none;" data-delete-action="_submissionfiledelete" data-delete-controller="project" data-delete-id="b59fa83e-14a8-e511-8172-00215e466552">Confirm Delete</div>
</td>
而这里的JavaScript的:
$(function() {
$(Document).on("click",".delete-link",function (event) {
var deleteLink = $(this);
deleteLink.hide();
var confirmButton = deleteLink.siblings(".delete-confirm");
confirmButton.show();
var cancelDelete = function() {
removeEvents();
showDeleteLink();
};
var deleteItem = function() {
removeEvents();
confirmButton.hide();
var url = '/' + confirmButton.attr('data-delete-controller') + '/' + confirmButton.attr('data-delete-action') + '/' + confirmButton.attr('data-delete-id');
$.post(
url,
AddAntiForgeryToken({ id: confirmButton.attr('data-delete-id') }))
.done(function() {
var parentRow = deleteLink.closest(".removable-row"); //"tr:first, li:first");
parentRow.fadeOut('fast', function() {
parentRow.remove();
});
}).fail(function (data) {
var bpData = data;
});
return false;
};
var removeEvents = function() {
confirmButton.off("click", deleteItem);
$(document).on("click", cancelDelete);
$(document).off("keypress", onKeyPress);
};
var showDeleteLink = function() {
confirmButton.hide();
deleteLink.show();
};
var onKeyPress = function (e) {
//Cancel if escape key pressed
if (e.which == 27) {
cancelDelete();
}
};
confirmButton.on("click", deleteItem);
$(document).on("click", cancelDelete);
$(document).on("keypress", onKeyPress);
return false;
});
AddAntiForgeryToken = function (data) {
data.__RequestVerificationToken = $('input[name=__RequestVerificationToken]').val();
return data;
};
});
答
无效将覆盖onclick事件在IE
改变这一行:
<a class="delete-link" href="javascript:void(0);">Delete</a>
本:
<a class="delete-link" href="#">Delete</a>
你可以尝试强制EDGE模式:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+0
只要确保知道作者:http://stackoverflow.com/questions/134845/href-attribute-for-javascript-links-or-javascriptvoid0 –
尝试'$(文件)''而不是$(文档)'。一般来说JS是区分大小写的。 – Sirko
对上述代码进行一些小调试,并在您的问题中提供结果。 –
[在href ie 11中使用js时出错]可能的重复(http://stackoverflow.com/questions/23077303/error-when-using-js-in-href-ie-11) –