我在通过jQuery伪造锚点单击时遇到问题:为什么我的thickbox第一次单击输入按钮时出现,但第二次或第三次却没有出现?
这是我的代码:
<input onclick="$('#thickboxId').click();" type="button" value="Click me" /> <a id="thickboxId" href="myScript.php" class="thickbox" title="">Link</a>
当我直接单击链接时,它总是起作用,但是如果我尝试通过输入按钮激活thickbox,则它不会起作用。这是在FF。对于Chrome,它似乎每次都能正常工作。有什么提示吗?
尽量避免内联这样的jQuery调用。将脚本标签放在页面顶部以绑定到click事件:
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>
编辑:
如果您试图模拟实际点击链接的用户,那么我认为这是不可能的。一种解决方法是更新按钮的click事件以更改window.locationJavascript中的:
window.location
<script type="text/javascript"> $(function(){ $('#thickboxButton').click(function(){ window.location = $('#thickboxId').attr('href'); }); }); </script>
编辑2:
现在,我意识到Thinbox是一个自定义jQuery UI小部件,我在这里找到了说明:
<a href>
class="thickbox"
href
#TB_inline
?height = 300&width = 300&inlineId = myOnPageContent
相应地更改查询中的height,width和inlineId的值(inlineID是元素的ID值,该元素包含要在ThinBox中显示的内容。
(可选)您可以将modal = true添加到查询字符串(例如#TB_inline?height=155&width=300&inlineId=hiddenModalContent&modal=true),以便关闭ThickBox将需要tb_remove()从ThickBox内部调用该函数。请参见隐藏的模态内容示例,在该示例中必须单击“是”或“否”以关闭ThinBox。
#TB_inline?height=155&width=300&inlineId=hiddenModalContent&modal=true
tb_remove()