尝试使用jQuery创建对话框弹出窗口时出错

时间:2011-10-06 03:26:06

标签: javascript jquery ajax

我是一个jQuery新手,我试图打开一个弹出对话框给用户

error : function(data)

到目前为止,我在jQuery代码中的内容是:

<script type="text/javascript">
$(document).ready(function() 
{
   var $dialog = $('<div></div>')
           .html('This dialog will show every time!')
           .dialog({
               autoOpen: false,
               title: 'Basic Dialog'
           });

    $('.vote_up').click(function() 
    {        
        alert ( "test: " + $(this).attr("data-problem_id") );
        problem_id = $(this).attr("data-problem_id");

        var dataString = 'problem_id='+ problem_id + '&vote=+';

        $.ajax({
                type: "POST",
                url: "/problems/vote.php",
                dataType: "json",
                data: dataString,
                success: function(data)
                {           
                    // ? :)
                    alert (data);   
                },
                error : function(data) 
                {
                    //alert("ajax error, json: " + data.responseText);
                    errorMessage = data.responseText;

                    if ( errorMessage == "not_logged_in" )
                    {
                        alert ("errr");

                        // Try to create the popup that asks user to log in.
                        //$(this).dialog();

                        $dialog.dialog('open');
                        // prevent the default action, e.g., following a link
                        return false;
                    }
                    else
                    {
                        alert ("not");
                    }

                    //alert(JSON.stringify(data));
                    //for (var i = 0, l = json.length; i < l; ++i) 
                    //{
                    //  alert (json[i]);
                    //}
                }
            });


        //Return false to prevent page navigation
        return false;
    });

    $('.vote_down').click(function() 
    {
        alert("down");

        problem_id = $(this).attr("data-problem_id");

        var dataString = 'problem_id='+ problem_id + '&vote=-';        

        //Return false to prevent page navigation
        return false;
    });    
});
</script>

我收到一个JavaScript错误,即Object没有方法对话框。这对我来说似乎是希腊语:)

如果您按“投票”链接:http://www.problemio.com

,则会出现此错误

我该如何解决这个问题?我可以将对话框显示出来吗?它会要求人们登录网站或注册。

谢谢!

2 个答案:

答案 0 :(得分:1)

您需要在网页上加入jQuery UI JavaScript and CSS files。您还需要将对话框元素附加到页面的DOM:

var $dialog = $('<div></div>')
       .html('This dialog will show every time!')
       .appendTo('body')
       .dialog({
           autoOpen: false,
           title: 'Basic Dialog'
       });

旁注:我强烈建议您更新到更新版本的jQuery。您的网站使用的是1.3(2009年1月发布); the latest version是1。6。4(2011年9月)。

答案 1 :(得分:1)

不确定var $dialog = $('<div></div>')是否合法!

我认为你需要这样做;

var $dialog = $('.MyDiv')

然后

<div class="MyDiv"></div>