2012-02-14 58 views
2

我正在使用Jquery Cluetip作为我的工具提示。 工具提示内容在Cluetip中加载了AJAX功能。在加载的内容中,我想使用Javascript来增加可用性。Jquery Cluetip - 在提示内使用JavaScript

的index.html:

<img src="edit.png" title="Test" class="popup" rel="ajax-content.html"> 

onLoad.js:

$('.popup').cluetip({activation: 'click'}); 

Ajax的content.html:

<script language="javascript" type="text/javascript"> 
    alert('Hello world!'); 
</script> 
Test content. 

其结果是,以ol-tip出现在点击标题:'测试',内容:'测试内容'和没有警报说'世界您好!'。 FireBug不会显示脚本和控制台错误。

对此有何帮助?


编辑:

我想通了。

Cluetip对处理AJAX默认动作:

ajaxProcess: function(data) { 
    data = data.replace(/<(script|style|title)[^<]+<\/(script|style|title)>/gm, '').replace(/<(link|meta)[^>]+>/g,''); 
    return data; 
} 

因此,解决方法是:

$('.popup').cluetip({ 
    activation: 'click'. 
    ajaxProcess: function(data) { 
     return data; 
    } 
}); 

我不知道为什么Cluetip删除所有脚本/风格/标题,可能防止错误。

回答

1

脚本通常不会通过jquery的ajax抓取加载。您通常必须通过$ .getScript()或通过查找脚本元素并自行加载脚本来完成此操作。

我认为cluetip不会通过它的rel加载功能为你做这件事。此外,这通常不是一个好主意,你为什么要这样做?

+0

Cluetip默认提供这些选项。我这样做是为了提高我的应用程序的可用性(例如工具提示内的输入字段上的日期选择器)。为什么它不是一个好主意? – 2012-02-14 19:09:36

+0

它通常是一个坏主意,通过ajax包含js文件并运行它们,它通常是一个更好的方法来做到这一点。例如:将一个类'datepicker'添加到所有需要日期选择器的输入。在cluetip'ajaxprocess'提供的回调中,在你新添加的html中找到'.datepicker'并添加datepickers。 – mkoryak 2012-02-14 20:50:22