首页 网络编程 前端制作 数据库 CMS教程 脚本编程 微信开发 小程序开发 服务器

javascript技巧

热门: ASP.NET PHP编程 ASP编程 JSP编程

如何可以模拟通过jQuery的锚击?

来源:未知 发布时间:2019-03-02
下面是我的代码: <输入的onclick=“$('#thickboxId')单击();”类型=“按钮”值=“ <a id="thickboxId"“class="thickbox" title="">链接</ A> 当我直接点击该链接,如果我尝试通过输入按钮激活ThickBox的它总是有效,但不是。这是在FF。它似乎工作每任何提示?
本文地址 :CodeGo.net/45964/ 
------------------------------------------------------------------------------------------------------------------------- 
1. 尽量避免inline一样,你的jQuery的调用。把脚本标记在页面顶部绑定到click事件:
<script type="text/javascript">
$(function(){
	$('#thickboxButton').click(function(){
		$('#thickboxId').click();
	});
});
</script>
<input id="thickboxButton" type="button" value="Click me">
<a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a>
编辑: 如果你试图模拟物理上点击链接,那么我不相信这是可能的.a种解决方法是更新按钮的click事件改变window.location在Javascript中:
<script type="text/javascript">
$(function(){
	$('#thickboxButton').click(function(){
		window.location = $('#thickboxId').attr('href');
	});
});
</script>
编辑2: 现在,我认识到ThickBox的是一个自定义的jQuery UI小部件,我发现这里的说明: 说明: 创建一个链接(<a href>) 给link一个class属性与ThickBox中的值(class="thickbox") 在href链接的属性添加下列主播:#TB_inline在href之后的属性#TB_inline添加下面的查询字符串到锚: ?高度=300&宽度=300&inlineId=myOnPageContent 改变高度,宽度和inlineId在查询中的值相应地(inlineID是的ID值包含您想在ThickBox显示的内容。 当然你也可以添加莫代尔=true添加到查询字符串(例如#TB_inline?height=155&width=300&inlineId=hiddenModalContent&modal=true),以便关闭ThickBox中需要调用tb_remove()从ThickBox的范围内发挥作用。看到隐藏的模式内容的例子 CodeGo.net,在那里你必须单击yes或no来关闭ThickBox的。 
2. 什么工作是:
$('a.mylink')[0].click()

3. 我最近发现了如何通过jQuery触发click事件。
 <script type="text/javascript">
 var a = $('.path > .to > .element > a')[0];
 var e = document.createEvent('MouseEvents');
 e.initEvent( 'click', true, true );
 a.dispatchEvent(e);
 </script>

4. 这种方法适用于Firefox和IE浏览器。希望它可以帮助
var comp = document.getElementById('yourCompId');
try { //in firefox
 comp.click();
 return;
} catch(ex) {}
try { // in chrome
 if(document.createEvent) {
  var e = document.createEvent('MouseEvents');
  e.initEvent( 'click', true, true );
  comp.dispatchEvent(e);
  return;
 }
} catch(ex) {}
try { // in IE
 if(document.createEventObject) {
   var evObj = document.createEventObject();
   comp.fireEvent("onclick", evObj);
   return;
 }
} catch(ex) {}

5. 我建议你看看硒API来看看他们是如何触发一个点击的方式: 硒browserbot.js 查找BrowserBot.prototype.triggerMouseEvent函数。 
6. 问题标题说“我怎么可以模拟一个锚击在jQuery的?”。那么,你的“触发”或“triggerHandler”的方法,像这样:
<script type="text/javascript" src="path/to/jquery.js"></script>
<script type="text/javascript" src="path/to/thickbox.js"></script>
<script type="text/javascript">
$(function() {
 $('#btn').click(function() {
  $('#thickboxId').triggerHandler('click');
 })
})
</script>
...
<input id="btn" type="button" value="Click me">
<a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a>
没有测试,这种实际的脚本,但我trigger前等,以及他们的工作a'ight。 更新triggerHandler实际上并没有做OP的想要的东西。我觉得1421968提供了对这个问题的最佳答案。 
7. 你需要假锚击?从ThickBox的网站: ThickBox中可以从一个链路输入(通常是一个按钮),并且区域(图像映射)被调用。 如果这是可以接受的应该是作为把ThickBox的类上的输入本身一样简单:
<input id="thickboxButton" type="button" class="thickbox" value="Click me">
如果没有,我会使用Firebug和放置一个断点在锚,看它是否只触发优先次点击。 编辑: 好吧,我不得不尝试为自己和几乎完全的代码在这两个和Firefox的工作:
<html>
<head>
<link rel="stylesheet" href="thickbox.css" type="text/css" media="screen" />
</head>
<body>
<script src="jquery-latest.pack.js" type="text/javascript"></script>
<script src="thickbox.js" type="text/javascript"></script>
<input onclick="$('#thickboxId').click();" type="button" value="Click me">
<a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a>
</body>
</html>
窗口弹窗不管我点击输入或锚如果上面的代码对你的作品,我建议你的错误出在其它地方,并且您尝试隔离问题。 另一种可能是,我们不同版本的jQuery / ThickBox的。我什么我从ThickBox的页面了-jQuery的1.3.2和ThickBox的3.1。 
8. 你可以通过jQuery或与模仿你的链接的href动作的HTML页面代码中创建一个表单:<a id="anchor_link" href="somepath.php">click here</a>.
var link = $('#anchor_link').attr('href');
$('body').append('<form id="new_form" action="'+link+'"></form>');
$('#new_form').submit();

9. 用法理的剧本我做了这个,可以轻松地“点击”只要你想很多。 我是谷歌阅读器上1600 +的项目和它的工作完美(在Firefox中)!
var e = document.createEvent('MouseEvents');
e.initEvent( 'click', true, true );
$(selector).each(function(){this.dispatchEvent(e);});

10. 为了模拟点击一个锚,当登陆的网页上,我的jQuery的scrollTop的属性动画$(document).ready.无需触发,并且在IE 6和所有其他的浏览器。 
11. 如果您不需要JQuery的,因为我不知道。我有问题的跨浏览器函数.click()。所以
eval(document.getElementById('someid').href)

12. 我相信你
$('#yourLink').bind('click', function() {
 //Do something over here
});
$('#yourLink').trigger('click');
这很容易触发点击函数,而无需实际点击它。 
13. JQuery('#left').triggerHandler('click');在Firefox和IE7中工作正常。我没有在其他浏览器进行了测试。 如果要触发点击请执行以下操作:
window.setInterval(function() 
 {
  $('#left').triggerHandler('click');
 }, 1000);

14. 在Javascript中你可以这样做
function submitRequest(buttonId) {
 if (document.getElementById(buttonId) == null
   || document.getElementById(buttonId) == undefined) {
  return;
 }
 if (document.getElementById(buttonId).dispatchEvent) {
  var e = document.createEvent("MouseEvents");
  e.initEvent("click", true, true);
  document.getElementById(buttonId).dispatchEvent(e);
 } else {
  document.getElementById(buttonId).click();
 }
}
而你也喜欢
submitRequest("target-element-id");

15. 虽然这是很老的问题,我发现就好办了这个任务。它是由所谓的jQuery UI的模拟团队开发的jQuery插件。你可以jQuery的后包括它,然后你可以不喜欢
<a href=" CodeGo.net 
$('a').simulate('click');
网络编程 | 前端制作 | 数据库 | CMS教程 | 脚本编程 | 微信开发 | 小程序开发 | 服务器 |

程序员学习网,提供最新的微信开发教程,小程序开发教程,网络编程、php教程、asp.net教程、微信公众平台二次开发教程、脚本编程、网页制作、网页设计、网页特效,为站长与网络编程从业者提供学习资料,凡本网站转载的文章、图片等资料的版权归版权所有人所有,因无法和版权所有者一一联系,如果本网站选取的文/图威胁到您的权益,请您及时和本网站联系。 我们会在第一时间内采取措施,避免给双方造 成不必要的损失。
© 2015-2018 程序员学习网 版权所有,并保留所有权利。

电脑版 | 移动版