2012-10-24 56 views
5

我有一个在页面上的链接,我想要在页面加载时以编程方式点击它。以编程方式点击一个链接使用jQuery在页面加载

事情是这样的:

$(document).ready(function() { 

    // code to make the page think $('a.tagcloud-link') is clicked 
}); 

的联系是一个AJAX调用,显示在WordPress的后端热门的标签。

该功能不易编辑,因为它依赖于很多事情。

所以我想触发AJAX链接,调用页面加载时最流行的标签。

这将解决我所有的问题,如果它的工作。

该链接为$(“a.tagcloud链接”)

请,请帮我在这,我花了几个小时拉我的头发试图和未能做到这一点。谢谢。

+1

你尝试$( 'a.tagcloud链接' 。)。首先()触发( '点击'); – Tariqulazam

+0

这不起作用@Tariqulazam –

+1

从您的意见中可以看出,您并未概述您遇到的实际问题。请详细说明你正在尝试做什么,这样的答案可以针对具体的用例。 – JamesSwift

回答

0

没有这些帮助。 我自己通过绕开链接并在加载时执行它来修复它。

+0

是的,我不明白这些人没有得到有关click()不工作的大声笑。你是同样的船,试图在Greasemonkey脚本中自动化一些东西。 –

1

如果我理解正确的问题:

$('a.tagcloud-link').click(); 
+0

试过了,它没有工作:( –

+0

使用刚才你的链接插入到DOM树后的动态和附加 - '#('body')。append( '...'); $('a.tagcloud-link')。click();' – Reflective

+0

代码被正常的HTML添加,而不是.append() 我试图实现你建议使用inline

1

尝试

$('a.tagcloud-link').click(); 

OR

$('a.tagcloud-link').trigger('click') 
+0

这不起作用,我应该提到当页面打开时我想要点击的链接本身就是一个由jQuery cod生成的代码动态地。但是我想在加载文档时模拟点击它。肯定有一种方法? –

1
$(function() { 
    $('a.tagcloud-link').on('click', function() { 
      // execute code here 
    }); 
}); 

这是正确使用jQuery的。

+0

我想模拟页面加载时点击的链接。我不认为你的代码这样做。 –

+1

然后,您应该添加更多代码,如果脚本'认为'a.tagcloud-link被点击了,您希望脚本执行什么操作? –

+0

这是代码:http://jsfiddle.net/Wnra9/ –

6

试试这个:

$('a.tagcloud-link')[0].click(); 

使用[0]获取到jQuery对象中的第一个DOM对象的引用,所以这个调用DOM object's (non-jQuery) .click() method这将导致导航链接的指定href

使用jQuery's .click() method会调用您绑定到该元素的任何点击处理程序,但不会导致默认行为实际上跟随该链接。

真的简单的演示:http://jsfiddle.net/mtBav/

+0

这没有奏效。尝试在页面加载时加载该代码后,该功能完全停止工作。 –

+0

这是代码:jsfiddle.net/Wnra9 –

+1

如果没有与a.tagcloud-link选择符相匹配的元素存在,我显示的错误会导致错误,所以请确保您已经实际创建了元素。你的小提琴中的代码不会创建任何这样的元素,并且你还没有显示任何html,所以...(你的小提琴不是很有帮助:你应该将JS代码发布到JavaScript窗口中(左下角) ,而不是放入HTML窗口中。) – nnnnnn

1

为了跟你说实话,我觉得每个人都在这里是正确的,我认为这个问题是诬陷错误。但是我的尝试和我认为我所做的只是让它有点不同。只是想帮助。

document.addEventListener("DOMContentLoaded", function() { 
    EventL(); 
}); 

// global 
var tagLoad = false; 

function eventL() { 
    $('a.tagcloud-link').on('click', function() { 
     tagLoad = true; 
    }); 

    // you can repurpose this, its for page refresh right now. but 
    // I think it helps with your general idea? 
    $(window).load(function(){ 
     init(); 
    }); 
} 

function init() { 
    if (tagLoad == true) { 
     // Load your tags. 
    } 
} 
+0

它可能是错误的框架,但你可以告诉我如何框架,但似乎你不明白我想实现什么。无论如何,谢谢你试图帮助! –

+0

我在某处阅读您想要模拟点击的地方,您是否在寻找该视觉外观?或者你在寻找一些东西来记住你的wordpress模板上有一个按钮被点击了吗? – Jim

3
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
$("a#tobeclicked").click(function() { 
// if it has to be href 
var tohref = $(this).attr("href"); 
alert(tohref); 
window.location=tohref; 


// else you want add some functions 

$("#mydiv").fadeIn(); 

}); 
$("a#tobeclicked").trigger('click'); 
}); 
</script> 
<a id="tobeclicked" href="http://www.google.com">Go!</a> 
<div id="mydiv" style="display:none;">Stroam</div> 
+1

男人它与我合作..... :) – Heart

+0

嘿男人你说没有答案为你工作检查上面的代码,我已经添加。它工作100%的人...我检查了5次,并完美地工作! – Heart

0
function my_admin_head(){ 
echo 
'<script type="text/javascript"> 
    jQuery(function($){ 
     $(\'a.tagcloud-link\').each(function(){ 
      tagBox.get($(this).attr(\'id\')); 
      $(this).unbind().click(function(){ 
       $(this).siblings(\'.the-tagcloud\').toggle(); 
       return false; 
      }); 
     return false; 
    }); 
}); 
</script>'; 
} 
add_action('admin_head', 'my_admin_head'); 

也许它可以帮助某人。

0

也许你用来访问元素的方式是将jquery语法与javascript混合使用。我也有这个问题,但我试图通过错误的方式访问元素。

正是这样

$(document).ready(function(e){ 
     alert(location.hash); 
     if (location.hash == "#22") { 
      $("gallery div a")[1].click(); //without # 
     }; 
    }) 

但应该是这样的

$(document).ready(function(e){ 
     alert(location.hash); 
     if (location.hash == "#22") { 
      $("#gallery div a")[1].click(); //with #, cause I was using an ID 
     }; 
    }) 

和工程:)

相关问题