2014-09-05 40 views
0

我在我的智慧结束了。我的页面上有一个链接,用于将PartialView的内容作为可拖动模式加载到我的页面上的<div>。该Javascript代码内容加载到一个div的作品,但我的回调创建模式失败,出现以下错误:jquery ui - undefined不是对话框上的功能

<head> 
    <meta charset="utf-8" /> 
    <title></title> 
    <link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
    <meta name="viewport" content="width=device-width" /> 

    <script src="/Scripts/jquery-1.8.2.min.js" type="text/javascript"></script> 
    <script src="/Scripts/jquery-ui-1.8.24.min.js"></script> 
    <script src="/Scripts/modernizr-2.6.2.js"></script> 
    <script type="text/javascript" src="/Scripts/jquery.dataTables.min.js"></script> 

    <link href="/Content/siteV2.css" rel="stylesheet"/> 
    <link rel="stylesheet" type="text/css" href="/Content/jquery.dataTables.min.css" /> 

</head> 
:从作为我_Layout.cshtml文件中定义的HTML头

> Uncaught TypeError: undefined is not a function 
> jquery-1.8.2.min.js:19p.fn.extend.add 
> jquery-1.8.2.min.js:19p.fn.extend.addBack 
> jquery-1.8.2.min.js:19a.widget._getHandle 
> jquery-ui-1.8.24.min.js:23a.widget._mouseCapture 
> jquery-ui-1.8.24.min.js:23a.widget._mouseDown 
> jquery-ui-1.8.24.min.js:23(anonymous function) 
> jquery-ui-1.8.24.min.js:23p.event.dispatch 
> jquery-1.8.2.min.js:19g.handle.h jquery-1.8.2.min.js:19 

代码

Javascript代码执行驻留我ViewPresentationSchedule.cshtml页面,该页面返回的View上:

<script type="text/javascript"> 
    function showAddForm() { 
     $('#AddPresenterForm').load('@Url.Action("AddPresenterForm", "Pod", new { podId = pod.PodId })', 
      function() { 
       showform(); 
      } 
     ); 
    } 

    //fades in our help popup and makes it draggable but not resizable 
    function showform() { 
     var windowWidth = document.documentElement.clientWidth; 
     var windowHeight = document.documentElement.clientHeight; 
     var popupHeight = $('#AddPresenterForm').height(); 
     var popupWidth = $('#AddPresenterForm').width(); 
     $('#AddPresenterForm').css('position', 'absolute'); 
     $('#AddPresenterForm').css('top', windowHeight/2 - popupHeight/2); 
     $('#AddPresenterForm').css('left', windowWidth/2 - popupWidth/2); 
     $('#AddPresenterForm').fadeIn('slow', 
     function() { 
      $('#AddPresenterForm').draggable(); 
      $('#AddPresenterForm').css('display', 'block'); 
     }); 
    } 

</script> 

股利上ViewPresentationSchedule .cshtml,它返回一个View

<div id="AddPresenterForm"> 

</div> 

链接促使所有魔术发生:

<a href="#" onclick="showAddForm()">Add Presenter</a> 

任何想法可能会发生?我怀疑jQuery UI没有正确加载/初始化,因为我在其他页面上执行了.datepicker()命令也不行。

+0

'showform()'函数的哪一行会抛出错误? – 2014-09-06 08:22:28

+0

@StephenMuecke它实际上处理成功。这是当我点击DIV拖动它,我遇到了错误。 – RavB 2014-09-06 22:02:16

+1

检查浏览器的调试器控制台是否有网络错误。根据我的经验,该错误意味着脚本没有正确下载,或脚本以错误的顺序执行。 – 2014-09-10 17:58:29

回答

1

经过进一步调查,有什么问题我的jQuery的文件。我删除它们并从CDN中检索它们,现在一切正常。

0

也许它与你初始化的地方draggable()有关。在加载内容之前,您可能需要初始化draggable()。我假设#AddPresenterForm处于隐藏状态,直到单击添加演示者按钮,在这种情况下,如果它已变为可见状态时它已经可以拖动就不会出现问题。

如果这似乎不起作用,你可以使用jQuery UI模式对话框,它可以使你的工作变得更容易。

下面是这似乎符合你正在尝试做一个例子的链接:http://jqueryui.com/dialog/#modal-form