我在实现使用jQuery的小javascript时遇到了麻烦。代码是
$(document).ready(function () {
$("span.question").hover(function () {
$(this).append('<div class="tooltip"><p>This is a tooltip. It is typically used to explain something to a user without taking up space on the page.</p></div>');
}, function () {
$("div.tooltip").remove();
});
});
我见过类似的帖子,据说这个问题是由mootools的javascript冲突引起的。所以我用“jQuery”替换了'$'的每个实例,但是脚本仍然没有做任何事情,并且在firebug控制台中没有显示错误。有人能告诉我问题是什么吗? 感谢。
答案 0 :(得分:2)
阅读此documentation。
许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果你需要在jQuery旁边使用另一个JavaScript库,那么通过调用$ .noConflict()将$的控制权返回给另一个库。在jQuery初始化期间保存$的旧引用; noConflict()只是简单地恢复它们。
因此您需要将控件移回jQuery
。然后,您必须使用jQuery
而不是'$'。
<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) {
jQuery("span.question").hover(function () {
jQuery(this).append('<div class="tooltip"><p>This is a tooltip. It is typically used to explain something to a user without taking up space on the page.</p></div>');
}, function () {
jQuery("div.tooltip").remove();
});
});
</script>
注意:并确认jQuery仅包含一次。
编辑:我忘了关闭.ready
功能。我修好了。这是一个fiddle链接,可以查看其工作原理。
答案 1 :(得分:0)
尝试在代码的开头写一下:
jQuery.noConflict()