2016-11-04 140 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();