相关疑难解决方法(0)

如果我没有使用绑定或单击已绑定事件处理程序,我可以调用jquery click()来跟随<a>链接吗?

我的JavaScript中有一个计时器,需要模拟点击一个链接,一旦时间流逝就转到另一个页面.要做到这一点,我正在使用jQuery的click()功能.我已经使用$().trigger()window.location也,我可以作出打算与所有三个它的工作.

我观察到一些奇怪的行为,click()我试图了解发生了什么以及为什么.

我正在使用Firefox来解决这个问题,但我也对其他浏览器会对此做些什么感兴趣.

如果我没有使用$('a').bind('click',fn)$('a').click(fn)设置事件处理程序,那么调用$('a').click()似乎什么都不做.它不会为此事件调用浏览器的默认处理程序,因为浏览器不会加载新页面.

但是,如果我首先设置一个事件处理程序,那么即使事件处理程序什么都不做,它也会按预期工作.

$('a').click(function(){return true;}).click();
Run Code Online (Sandbox Code Playgroud)

这会加载新页面,就像我自己点击了一样.

所以我的问题是双重的:这种奇怪的行为是因为我在某处做错了吗?click()如果我没有创建自己的处理程序,为什么调用对默认行为不起作用?

编辑:

当霍夫曼确定他试图复制我的结果时,我上面描述的结果实际上并没有发生.我不确定是什么原因引起了我昨天观察到的事件,但我今天肯定这不是我在问题中所描述的.

所以答案是你不能在浏览器中"伪造"点击并且所有jQuery都会调用你的事件处理程序.您仍然可以使用window.location更改页面,这对我来说很好.

javascript firefox jquery events click

175
推荐指数
6
解决办法
42万
查看次数

jQuery在LinkBut​​ton上调用__doPostBack

我有一个LinkBut​​ton,我需要执行单击以导致回发.实际的链接目标是:

javascript:__doPostBack('ctl00$c1$btnRefreshGrid','');

单击该链接会执行回发,由代码隐藏中的断点验证.粘贴javascript:__doPostBack('ctl00$c1$btnRefreshGrid','')在浏览器的地址栏中也可以起到同样的效果.

我尝试了以下但完全没有效果:

__doPostBack('ctl00$c1$btnRefreshGrid','');    
$('#ctl00$c1$btnRefreshGrid').click();
$('#ctl00$c1$btnRefreshGrid').trigger('click');
eval($('#ctl00$c1$btnRefreshGrid').attr("href"));
Run Code Online (Sandbox Code Playgroud)

我同时使用尝试<%= btnRefreshGrid.UniqueID %><%= btnRefreshGrid.ClientID %>产生的选择.

asp.net jquery postback linkbutton dopostback

5
推荐指数
1
解决办法
4万
查看次数