0

我在实现一个使用 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控制台中没有显示任何错误。有人可以向我指出问题所在吗?谢谢。

4

2 回答 2

2

阅读本文档

许多 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功能。我修好了。这是一个小提琴链接,看看它是如何工作的。

于 2013-03-09T19:17:40.107 回答
0

尝试在代码的开头编写:

jQuery.noConflict()
于 2013-03-09T19:07:51.057 回答