我正在使用c#在asp.net中开发一个应用程序。我的页面中有四个锚标记,并且有一个名为gen_all_es()的函数。我想在每个锚标签点击上调用该函数。那些锚标记还包含href到另一个页面。我希望首先完成函数调用,然后重定向到另一个页面。我的锚标签代码如下。请检查并告诉我为什么功能没有正确调用。
ASPX代码:
<a href="test.aspx?paramControl=imagePhoto" class="btn btn-primary btn-sm" style="width:100%; margin-bottom:5px;" onclick="gen_all_es();">Add / Modify Photo</a>
JQuery代码:
function gen_all_es() {
var divID, labelID, imageID, hiddenControlID, controlID, zoomLevel;
$("#areaHiddenField").find('[id^="hf_es_text"]').each(function () {
controlID = $(this).attr("id");
divID = "lbl" + controlID.slice(11, controlID.length);
labelID = "lbltext" + controlID.slice(11, controlID.length);
zoomLevel = $("#ddlZoom").val();
$(this).val(gen_es_text(divID, labelID, zoomLevel));
});
$("#areaHiddenField").find('[id^="hf_es_img"]').each(function () {
controlID = $(this).attr("id");
divID = "img" + controlID.slice(10, controlID.length);
imageID = "image" + controlID.slice(10, controlID.length);
zoomLevel = $("#ddlZoom").val();
$(this).val(gen_es_image(divID, imageID, zoomLevel));
});
}
感谢。
答案 0 :(得分:0)
似乎您的代码正常工作,函数调用首先完成,然后重定向,但您无法看到函数调用。我建议你在功能上加一个延迟:
setTimeout(function () {
}, 100); //in milliseconds
在此延迟之后,您将能够在重定向之前看到函数的结果。
答案 1 :(得分:0)
我修改了你的代码。它可能不是最好的代码,但它可能对您有所帮助。 演示:http://jsfiddle.net/lotusgodkk/GCu2D/62/
$(document).ready(function () {
$(document).on('click','.btn',function(e){
e.preventDefault();
alert('started');
var divID, labelID, imageID, hiddenControlID, controlID, zoomLevel;
$("#areaHiddenField").find('[id^="hf_es_text"]').each(function () {
controlID = $(this).attr("id");
divID = "lbl" + controlID.slice(11, controlID.length);
labelID = "lbltext" + controlID.slice(11, controlID.length);
zoomLevel = $("#ddlZoom").val();
$(this).val(gen_es_text(divID, labelID, zoomLevel));
});
$("#areaHiddenField").find('[id^="hf_es_img"]').each(function () {
controlID = $(this).attr("id");
divID = "img" + controlID.slice(10, controlID.length);
imageID = "image" + controlID.slice(10, controlID.length);
zoomLevel = $("#ddlZoom").val();
$(this).val(gen_es_image(divID, imageID, zoomLevel));
});
alert('done');
window.location.href = $(this).attr('href');
});
});
因此,在执行代码后,我使用javascript重定向浏览器,而不是默认的浏览器重定向。试试这对你有帮助。
HTML:删除内嵌javascript。