使用jquery触发器时href链接不起作用

时间:2014-08-15 05:47:49

标签: javascript jquery ajax

我有像这样的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>

我正在尝试做的是触发链接,这样它就像我只需手动点击一样。

2 个答案:

答案 0 :(得分: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方法。

答案 1 :(得分:0)

我们无法用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链接触发重定向。