为什么我必须删除一些JS引用才能使JQueryUI工作

时间:2014-05-12 14:24:52

标签: javascript jquery jquery-ui

我在这里有点难过。我的网站使用了一点Jquery。 SlideShow现在我想添加DatePicker。

<script src="~/Scripts/1.9.1.js"></script>    
<script src="~/Scripts/jquery-ui-1.10.4.js"></script>        
<script src="~/Scripts/jTools.js"></script>
<script src="~/Scripts/script.js"></script> // all of my onDocumentReady scripts

DatePicker不起作用。 Firebug报道:

TypeError: $(...).datepicker is not a function

我用来调用函数的代码是

<script>
    $(function () {
        $(".datepicker").datepicker({
            dateFormat: 'dd/mm/yy'
        });
    });
</script>

如果我通过删除最后的2来更新我的脚本,那么DatePicker工作正常

<script src="~/Scripts/1.9.1.js"></script>    
<script src="~/Scripts/jquery-ui-1.10.4.js"></script>        
<!--<script src="~/Scripts/jTools.js"></script> REMOVED
<script src="~/Scripts/script.js"></script>  REMOVED -->

我不知道如何解决问题所在。

jTools.js是来自http://jquerytools.org/download/

的库

我的script.js只包含

$(function () {
    $("a[rel]").overlay();
    document.getElementById("ringBackMorning").text = GetTomorrow() + " morning";
    document.getElementById("ringBackAfternoon").text = GetTomorrow() + " afternoon";

    $('#ddmenu li').hover(function () {
        clearTimeout($.data(this, 'timer'));
        $('ul', this).stop(true, true).slideDown(100);
    }, function () {
        $.data(this, 'timer', setTimeout($.proxy(function () {
            $('ul', this).stop(true, true).slideUp(400);
        }, this), 100));
    });

    // select all desired input fields and attach tooltips to them
    $("#ringMeBack :input").tooltip({
        // place tooltip on the right edge
        position: "center right",
        // a little tweaking of the position
        offset: [-2, 10],
        // use the built-in fadeIn/fadeOut effect
        effect: "fade",
        // custom opacity setting
        opacity: 0.7
    });
});

我很高兴能够展示这个网页,但不确定这是不是一件好事......

修改

根据@ web-nomad和@Bill Criswell的评论,我重新下载了JQuery Tools并确保它没有与JQuery捆绑在一起。然后我重新下载了我可以使用的最新版本的JQuery(1.11.1)。

这给了我TypeError: a.browser is undefined的问题以及原始问题(jstools第427行)

1 个答案:

答案 0 :(得分:1)

在控制台中运行jQuery.fn.jquery,查看返回的版本号。如果它不是 1.9.1 ,jTools库包含了自己的jQuery版本,而后者又删除了jQuery UI库,因为它覆盖了当前的jQuery版本,让你使用旧版本的jQuery。

你可能应该重新构建jTools(如果在包含jQuery UI之后你甚至需要它)以不包含jQuery。