我想在按下“upvote”链接后弹出jQuery对话框:http://www.problemio.com
(我在这个例子中工作,然后修改它,因为它对我不起作用:http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/)
这是我到目前为止所使用的jQuery代码,它不起作用:)
<script type="text/javascript">
$(document).ready(function()
{
var $dialog = $('.dialog')
.dialog({
autoOpen: false,
title: 'Basic Dialog'
});
$('.vote_up').click(function()
{
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();
$dialog.dialog('open');
// prevent the default action, e.g., following a link
return false;
}
else
{
alert ("not");
}
//alert(JSON.stringify(data));
}
});
//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>
在这段代码之上,我有另一个jQuery函数,它也有一个documentOnready检查。那会有关系吗?我应该使对话框代码全局吗?如果是这样,我该怎么做?
在任何情况下,如何通过我现在的设置为我打开对话框?
谢谢!
将我的jQuery导入更改为:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.16/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" />
答案 0 :(得分:4)
您需要在网页上加入jQuery UI script。这就是包含dialog plugin。
的内容目前,您只在HTML中引用了jQuery 1.6.4。
答案 1 :(得分:1)
更改此内容(位于$(document).ready()
内的顶部):
var $dialog = $('.dialog')
.dialog({
autoOpen: false,
title: 'Basic Dialog'
});
到
var $dialog = $('.dialog');
$dialog.dialog({
autoOpen: false,
title: 'Basic Dialog'
});
可以有多个$(document).ready()
,一旦加载dom,它们都应该运行