【问题标题】:Function Calling and Redirecting through anchor tag in jquery通过jquery中的锚标记进行函数调用和重定向
【发布时间】:2014-04-30 10:33:27
【问题描述】:

我正在使用 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));
        });
    }

谢谢。

【问题讨论】:

  • 提供 Javascript 和 HTML
  • @KamleshKushwaha 我没听懂你想说什么。请解释
  • 在问题中也包含您的 javascript 代码。没有那个代码,就很难找到问题
  • @KamleshKushwaha 我已经用 Jquery 函数更新了我的问题。请检查并回复。

标签: jquery html asp.net


【解决方案1】:

您的代码似乎正在运行,并且首先完成了函数调用,然后进行了重定向,但是您看不到函数调用。我建议在您的功能中添加延迟:

 setTimeout(function () {               
        }, 100); //in milliseconds

在这个延迟之后,您将能够看到重定向之前的函数结果。

【讨论】:

  • 我已经用 JQuery 代码更新了我的问题,请检查并让我知道我必须在哪里添加您的代码。
  • 你可以在函数的右括号“}”之前使用它。
【解决方案2】:

我稍微修改了您的代码。它可能不是最好的代码,但它可能会对您有所帮助。 演示: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。

【讨论】:

  • 您的代码无法正常工作以解决我的问题。
猜你喜欢
  • 1970-01-01
  • 2016-01-30
  • 2013-09-28
  • 2011-06-22
  • 2011-02-16
  • 2014-06-09
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多