我想在文本上有一個「多讀」功能。我動態加載特定關鍵字維基百科文本和具有這樣的功能:加載內容異步時,JavaScript無法識別我的功能?
function setText(text, lang, full) {
setTimeout(function() { $('#loading').fadeOut('fast'); }, 300);
var mylang = '<?= $_SESSION['lang']; ?>';
if (mylang != 'en' && lang == 'en')
var AppendText = '<span class="db f09 grey mt10"><?= __('TEXT_ONLY_ENGLISH'); ?></span>';
console.log(lang);
if (full) {
$('#text').html('<?= __('EMPTY'); ?>');
setTimeout(function() { $('#text').fadeIn('fast'); }, 500);
} else if (text) {
// Full Text
function fullText() {
console.log('yes');
setText(text, lang, 1);
}
text = text.length > length ? text.substring(0, length - 3) +
'... <a class="cp" onclick="fullText()"><?= __('MORE') ?></a>' : text;
$('#text').html(text).append(AppendText);
setTimeout(function() { $('#text').fadeIn('fast'); }, 500);
}
};
正如你可以在else if
部分看到我定義的fullText()
功能設置的onclick錨標記。當我點擊它時,我總是收到消息fullText is not defined
。 我只是想重新調用相同setText()
函數變量full
設置爲1
,使全文將顯示
Sometext的,而不是...(更多)
這是可能不使用ajax
?我有什麼選擇? PS:我也已經嘗試過撥打setText()
本身,而不是fullText()
,但那也不會被識別爲定義的功能。
與您的問題沒有關係,但僅供參考,您不需要那些'setTimeout'調用。你可以使用'.delay()'來代替。 '$('#text')。delay(500).fadeIn('fast');' – 2016-11-06 16:07:26
好的,很高興知道,謝謝。 @squint – AlexioVay
'fullText'函數的作用域被定義爲函數的地方,所以'onclick'屬性將無法看到它,因爲它將在全局範圍內查找它。 – 2016-11-06 16:09:27