当我 postload 提示提示(即使用 ajax 抓取它,然后将脚本标签附加到正文)时,我收到以下 javascript 错误:$cluetip 未定义。但是,一切仍然有效。知道为什么吗?
postload 脚本经过充分测试,不会破坏其他任何内容。我已确认脚本以正确的顺序加载。
我有一个类似的问题,这就是我最终解决它的方法(即,没有更多$cluetip
未定义的错误消息)。
首先,这是我的情况,可能与您的情况相似。在页面上,我有一个
<div id="sel_area"></div>
它是空的,想法是使用 jquery/ajax 来动态生成所需的<select><option>...</option>...</select>
HTML 代码以像这样插入到#sel_area
上面
$('#sel_area').html(data);
其中 data 是生成的 HTMLselect
标记。
但是,我认为我的问题是因为我没有以 JSON 或 XML 格式重新调整动态生成的数据结果,然后相应地对其进行处理。相反,我懒洋洋地将结果原样返回为普通文本/html。$cluetip
无论我尝试什么,当我不断收到未定义的错误时,我决定使用alert(data)
来查看正在返回。唉,我亲眼看到数据不仅是我回显的内容,而且还附加了整个 html 页面!然后解决方案对我来说很清楚。在不放弃以 XML 或 JSON 协议返回数据的情况下,我进行了以下小改动来解决问题:
生成<select>
标记的远程脚本的更改。最后最后一个是
echo "$select_tag";
我把它改成了
echo "$select_tag~";
也就是说,我附加了一个尾随 ~(波浪号)作为我的select_tag
字符串输出和我现在知道的 HTML 页面之间的分隔符,无论我喜欢与否,都会附加它。
jQuery/AJAX 方法的变化。
我换了线
$('#sel_area').html(data);
使用以下几行:
data_list = data.split('~');
$('#sel_area').html(data_list[0]);
你有它。这就是诀窍。split 方法使我能够轻松地从数据中分离出我想要select_tag
的,因为我明智地插入了 ~(波浪号)作为我的字段分隔符,我知道它既不是select_tag
结果的一部分,也不是系统附加的 HTML 页面。希望这可以帮助。
动态加载的脚本无法立即使用。您必须等待脚本完全加载,这是一个比人们想象的更复杂的问题。
我不知道提示,它可能是一个错字,但$cluetip
不会被定义,$.cluetip
(注意“ . ”)应该是。
快速浏览一下文档似乎让我认为线索提示是一个必须在某些元素上调用的函数,即$('#somediv').cluetip(...)
. 如果你想要全局默认值,你有$.cluetip.setup(...)
,但无论哪种方式,它都不会定义$cluetip
,只是$.cluetip
.