【问题标题】:href link not working while using jquery trigger使用jquery触发器时href链接不起作用
【发布时间】:2014-08-15 05:47:48
【问题描述】:

我有一个像这样的 javascript

var funct = function(){
return {
    init : function(data) {                 
        this.sendRequest({
            action : 'login'
        });
    },      
    login : function()
    {           
        var parentDIV = $("#dnn_ctr450_HtmlModule_lblContent");
        parentDIV.attr('href', 'https://webcenter.elendersolutions.com/webcenter/').trigger('click');               
    }
   }
}

这个的 HTML 代码。

<div id="dnn_ctr450_ModuleContent" class="DNN_HTMLContent">

<div id="dnn_ctr450_HtmlModule_lblContent" class="Normal">
    <p></p>
    <h2></h2>
    <h2>
        <a href="https://webcenter.elendersolutions.com/webcenter/" target="_self"> <-- how can i trigger this one?
            <img width="188" height="40" border="0" src="/Portals/0/WebcenterSignin.gif" alt="Webcenter Login"></img>
        </a>
    </h2>
    <h2>
        <a href="https://rates.lsi-lps.com/">
            <img width="188" height="40" border="0" src="/Portals/0/RateCalculatorSignin.gif" alt=""></img>
        </a>
    </h2>
    <h2></h2>
    <p></p>
</div>

我想要做的是触发链接,这样它就可以像我手动单击它一样工作。

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:

    一方面,您实际上并没有正确选择链接。相反,您正在选择其父 div,并在 div 上设置一个 href。函数的目标元素是 jQuery 对象中的内容,在本例中为 div:$("#dnn_ctr450_HtmlModule_lblContent")

    相反,直接选择锚链接(可能值得查看 attribute-equals selectorfind 的 jQuery 文档:

    var parentDIV = $("#dnn_ctr450_HtmlModule_lblContent");
    var aLink = parentDIV.find("a[href='https://webcenter.elendersolutions.com/webcenter/']");
    

    第二个问题是jQuery的点击功能不允许你点击链接;您必须利用原生 html 元素的 click 方法,详见 this SO post

    aLink[0].click();
    

    注意,通过[0],我们正在访问底层的 DOM 元素,因此我们调用的方法不是一个 jQuery 方法。

    【讨论】:

      【解决方案2】:

      我们不能用 JQuery 做任何事情。我们唯一能做的就是以编程方式进行重定向。

      var href = parentDIV.attr('href');
      window.location.href = href;
      

      但是使用原生 javascript 是的,我们可以。

      parentDIV.[0].click(); //where the index 0 returns the native DOM object.
      

      但请注意,由于某些原因,浏览器不希望在由 javascript 以编程方式触发时触发来自 href 链接的重定向。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-28
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多