当我body加载线索提示(即使用ajax抓取它,然后将脚本标记附加到正文)时,我得到以下javascript错误:$cluetip未定义。但是,一切仍然正常。知道为什么吗?
postload脚本经过了良好的测试,并且不会破坏任何其他内容。我已经确认脚本的加载顺序是正确的。
发布于 2011-11-27 23:20:57
我遇到了类似的问题,下面是我最终是如何解决它的(即,不再有$cluetip未定义错误消息)。
首先,这是我的场景,它可能与你的相似。在页面上,我有一个
<div id="sel_area"></div>它是空的,其思想是使用jquery/ajax动态生成所需的<select><option>...</option>...</select> HTML代码,以便插入到上面的#sel_area中,如下所示
$('#sel_area').html(data);其中select是生成的HTML标记。
但是,我认为我的问题是因为我没有以JSON或XML格式重新优化动态生成的数据结果,然后对其进行相应的处理。相反,我懒惰地将结果原样返回为普通的text/html。无论我怎么尝试,当我一直收到$cluetip is undefined错误时,我决定使用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页面的一部分。希望这能有所帮助。
发布于 2011-05-28 06:54:33
动态加载的脚本不会立即可用。您必须等待脚本完全加载,这是一个比人们想象的更复杂的问题。
发布于 2011-05-28 07:03:57
我不知道线索提示,可能是打字错误,但$cluetip不会被定义,$.cluetip (注意".")应该被定义。
快速浏览一下文档似乎会让我认为线索提示是一个必须在某些元素上调用的函数,例如$('#somediv').cluetip(...)。如果你想要全局默认值,你可以使用$.cluetip.setup(...),但是无论哪种方式,它都不会定义$cluetip,只会定义$.cluetip。
https://stackoverflow.com/questions/6158403
复制相似问题