2016-11-04 145 views
-2

下面的代码片段在点击时显示一个文本表格。我希望文本表在页面打开时显示,默认情况下,就像点击一样。我是一个总新手,这看起来很简单,但我已经尝试了几十个替代品,没有任何运气 - 请帮助我。在jQuery中模拟鼠标点击

//Show/Hide 'Text Alert' Table 
jQuery('#showAlertTable').on('click', function() { 
    jQuery('.alert-table').slideToggle(); 
}); 
+0

'$(“#showAlertTable”)点击()' – DaniP

+2

jQuery的文档是太棒了,我建议你至少翻阅它得到什么能一个模糊的概念取得成就。大多数方法名称都很自我解释,例如http://api.jquery.com/click –

+0

老实说,我一整天都在那个网站上尝试每个变量来让这个动作自我触发,但我必须接受我的小脑没有掌握代码。我需要像昨天这样的修复,不幸的是,你的建议也无法工作。 – DeanP

回答

0

你只需要触发它准备在没有点击事件:

$(function(){ 
    $('.alert-table').slideToggle(); 
}); 
+0

天才!这工作!起初它不是因为我在$('#showAlertTable')条目后面应用它。一旦我删除它,它就像一个魅力。非常感谢! – DeanP

0

做事一旦在页面加载,你应该看看jQuery的$(document).ready(...)功能。可以找到文档on jquery's website

在你的情况下,我们将采取你的点击处理程序的回调,并将其作为一个单独的函数,以便我们可以在点击和页面加载时触发它。

编辑以反映更灵活的语法。

function showTable(){ 
    jQuery('.alert-table').slideToggle(); 
} 

// add click handler 
jQuery('#showAlertTable').on('click', showTable); 

// fires showTable as soon as the document is ready, 
// or right away if the document is already ready. 
jQuery(showTable); 
+0

由于jQuery 3.0只能使用'jQuery(showTable)'/'$(showTable)',因为所有其他语法都不推荐使用。即使不是'jQuery('document')'是最糟糕的语法之一,因为'jQuery('document')看起来像是查询标签名为“document”的元素,然后为它准备一个事件回调函数。 –

+0

这正是jquery所做的。这是'document.addEventListener('DOMContentLoaded',...)的简写'' – Mobius

+0

当我写评论的时候它是'jQuery('document')',这是最糟糕的解决方案。无论如何,我的观点仍然是正确的:参见['弃用:除jQuery(函数)以外的文档就绪处理程序'](https://jquery.com/upgrade-guide/3.0/#deprecated-document-ready-handlers-other-比-jquery的函数)。除此之外,ready回调并不是'document.addEventListener('DOMContentLoaded',...)'的简写,因为使用'(function)'会延迟回调,直到DOM准备好,或者如果已经准备好就立即调用回调准备。 –

0

绑定处理程序后触发click事件应该这样做。这是一个常见的模式:

jQuery('#showAlertTable').on('click', function() { 
    jQuery('.alert-table').slideToggle(); 
}).click();