无法让jQuery停止冲突

时间:2014-01-14 09:13:12

标签: javascript jquery conflict

在详细介绍之前,我想说我做了很多搜索并尝试了noConflict()但没有运气。如果我没有正确使用它,请纠正我,不要只是给我任何回答问题的链接,建议OP使用noConflict()。

我有一个html表单,它使用两个jQuery函数,一个用于样式工具提示,一个用于上传文件(两者都是从互联网上下载的,我不知道如何使用jQuery)。只要不包括其他脚本,它们都可以完美地工作。我找到了让两种功能协同工作的方法。

这是我的HTML代码:(或查看此链接:http://yurivn.net/imageuploader/index1.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org

/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Google Picasa Image Uploader</title>

<link rel="stylesheet" href="http://yurivn.net/imageuploader/style.css" type="text/css" />
<!-- tooltips styling script --> 
<link rel="stylesheet" href="http://yurivn.net/imageuploader/tooltip.css"/>
<script src="http://yurivn.net/imageuploader/tooltip1.js"></script>
<script src="http://yurivn.net/imageuploader/tooltip2.js"></script>
<!-- upload script --> 
<script  type="text/ecmascript" src="http://yurivn.net/imageuploader/jquery.js?v=3.1"></script>
<script  type="text/ecmascript" src="http://yurivn.net/imageuploader/script_embed.js?v=3.1"></script>
<script>
$(function() {
$( document ).tooltip();
});
</script>
</head>

<body>
<div id="embed" style="display: inline-block;"></div><div id="status" style="display: inline-block;"></div>
<div id="result" style="display:none"></div>
<div><textarea class="primary textbox" id="links" name="onlinelink" readonly></textarea></div>
<input type="text" title="this tooltip should be styled"/>
</body>
</html>

上传脚本有效,但工具提示不起作用,反之亦然,如下所示添加noConflict():

<script>
jQuery.noConflict();
$(function() {
$( document ).tooltip();
})(jQuery);
</script>

我错过了什么?

P / s:我在那些包含的脚本中使用了绝对URL,而不是在这里粘贴它们,这将使我的问题变得太长。如果你想检查这些脚本,请检查这些URL,非常感谢!

2 个答案:

答案 0 :(得分:3)

你错了:)

<script>

    jQuery.noConflict();
    // $ no longer references jQuery.

    (function($) {
        // use $ in here:
        $(function () {
            $(document).tooltip();
        });
    }(jQuery));

</script>

答案 1 :(得分:1)

在某些情况下,我遇到了一些像你这样的冲突,但经常发现在</body>之前将jQuery函数放在文档末尾是最好的做法而不是把它放在<head>里面。但@RobH建议的正确格式化代码是正确的代码段。

参见jsfiddle:http://jsfiddle.net/farondomenic/ku7m7/1/