下面是我的代码: <输入的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');
本网刊登的文章均仅代表作者个人观点,并不代表本网立场。文中的论述和观点,敬请读者注意判断。
本文地址:http://www.xlkjgs.com/notes/js/3130.html