【问题标题】:Trigger the javascript function of the anchor's href during document.ready在document.ready期间触发anchor的href的javascript函数
【发布时间】:2012-09-13 09:38:25
【问题描述】:

页面加载时是否可以触发锚标签的javascript功能?

这是我的fiddle

<a  id="WebTree" href="javascript:alert('testing')">click me</a>


$(document).ready(function(){
    $('#WebTree').trigger('click');
    //$('#WebTree').click();
    // after the page load I'm expecting to see the alert but it's not working
});

我希望在页面加载后看到警报,但我没有

编辑

好的,这里简单解释一下我问这个问题的原因。

这里是sharepoint动态生成的原始链接。

<A id=ctl00_PlaceHolderLeftNavBar_ctl01_WebTreeViewn1 href="javascript:TreeView_PopulateNode(ctl00_PlaceHolderLeftNavBar_ctl01_WebTreeView_Data,1,ctl00_PlaceHolderLeftNavBar_ctl01_WebTreeViewn1,ctl00_PlaceHolderLeftNavBar_ctl01_WebTreeViewt1,ctl00_PlaceHolderLeftNavBar_ctl01_WebTreeViewt1i,' ','TaxonomyMetadata','Pages\\TaxonomyMetadata','t','30:FieldNameNode:e305128c-217b-47b4-81b9-db0c1e59f98f:3b529925-3610-485a-9133-bc958f7ab28e:dbf365da-565b-41ca-966d-f9bf29d9b2cf:30|ListNode|e305128c-217b-47b4-81b9-db0c1e59f98f|3b529925-3610-485a-9133-bc958f7ab28e|ea06a686-46c5-4470-a1ab-4fe4341589c8','tt')">

    <IMG style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" alt="Expand TaxonomyMetadata" src="/_layouts/images/MDNCollapsed.png">
</A>

底线我无法控制锚标记。

【问题讨论】:

  • 您只是在点击事件中传递警报...抱歉,这实际上不是我想要的
  • 这就是为什么它是评论而不是答案 =D

标签: jquery


【解决方案1】:

怎么样:

$(document).ready() {
    var code = $('#WebTree').attr('href');
    eval(code);
}

【讨论】:

  • 该死,刚要进来发布类似的东西,但包括设置onClick by $(document).ready(function(){ $('#WebTree').click(function() { eval($('#WebTree').attr('href')) }); $('#WebTree').click(); });
【解决方案2】:

您应该使用onclick 属性而不是href。以编程方式触发单击元素不会激活 href 属性。

<a id="WebTree" onClick='javascript:alert("testing")' href='#'>click me</a>

如果您想更改页面的位置,可以使用location.href

$('#webTree').click(function(){
   location.href = this.href
}).click()

http://jsfiddle.net/qnN2d/

【讨论】:

  • 更准确地说,“使用.trigger('click')不会触发原生click事件”
  • 我问这种问题是有原因的。该链接是由sharepoint动态创建的,我所能做的就是触发href的javascript。
  • @CarlsJr。所以最好的方法是使用location.href
【解决方案3】:

将事件绑定移动到 javascript:

<a  id="WebTree" href="#">click me</a>

$(document).ready(function(){
    $('#WebTree').click(function(){
        alert("testing");
    });
    $('#WebTree').trigger('click');
});

Source

See Unobtrusive JavaScript

【讨论】:

    【解决方案4】:

    所以你不能try this way

    $(document).ready(function(){
        $('#WebTree').trigger('click');
        $('#WebTree').click(function() {
        alert(1);
        });
        // after the page load I'm expecting to see the alert but it's not working
    });
    
     $(window).load(function () {
            $('#WebTree').click();
     });​
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      相关资源
      最近更新 更多