我想在文本上有一个“多读”功能。我动态加载特定关键字维基百科文本和具有这样的功能:加载内容异步时,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