我有一个更新面板,其中包含一个 GridView 和每行图像(删除图标)内以删除该行。我正在尝试在常规 JavaScript 确认弹出窗口中给出答案。
$(function(){
$("img.delete").on("click", function(evt){
return false; //Does not work
/*or*/
evt.preventDefault();//Does not work either
});
});
Html 呈现:
<td>
<img id="ctl00_ctl00_ctl00_ctl00_ctl00_ctl00_ContentPlaceHolderDefault_Content_Content_Content_Content_DashboardGrid_ctl02_DeleteControl140" class="delete" onclick="__doPostBack('ctl00$ctl00$ctl00$ctl00$ctl00$ctl00$ContentPlaceHolderDefault$Content$Content$Content$Content$DashboardGrid','Delete$0')" width="20" height="20" title="Remove item from your list." src="/images/delete_item.png" alt="Remove item from your list." style="border-width:0px;">
</td>
它不起作用,因为回发始终由更新面板执行,更新面板的 UpdateMode 为默认值,因为我没有在标记中设置它。
最佳答案
ThiefMaster提供的答案为我工作,地址:preventDefault() doesn't work对我的情况进行一些小调整:
function pageLoad()
{
var inlineFunction = new Function($('img.delete').attr('onclick'));
$('img.delete').click(function(event){
if(!confirm('Are you sure?')) {
event.stopImmediatePropagation();
}
}).click(inlineFunction).removeAttr('onclick');
}
使用 updatepanel+scriptmanager 时,pageLoad 事件可用,它允许我在每次部分回发时重新附加事件处理程序。
关于javascript - 根据 JS 确认框防止更新面板中的回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12790475/