$("div.square").droppable({
accept: '.white',
drop: function (event, ui)
{
$to = "#" + $(this).attr('id');
alert(to);
$.post(
"/Game/AddMove",
{
from: $from,
to: $to,
GameID: $("#gameID").val()
});
}
});
嗯,它不起作用。所以我必须要问,是否可以在放弃一些UI元素时调用AJAX?
问题是,它甚至没有调用控制器,
答案 0 :(得分:1)
我猜你想让你的变量成为被删除元素的id attr。我不知道你打算从哪里获得$来自的价值。
只是旁注 - 我建议不要使用以$开头的变量,特别是不要使用jQuery。
无论如何,要访问丢弃的对象,请执行以下操作:
drop: function(event, ui) {
toStr = '#' + $(ui.helper).attr('id');
}
答案 1 :(得分:0)
是的,你可以在drop上触发ajax调用。 (live example)
我看到了几个问题(详情如下):
$("div.square").droppable({
accept: '.white',
drop: function (event, ui)
{
$to = "#" + $(this).attr('id');// <== 1. Implicit Global?
alert(to); // <== 2. Syntax error
$.post(
"/Game/AddMove",
{
from: $from, // <== 3. Where does this come from?
to: $to,
GameID: $("#gameID").val()
});
}
});
$to
而未声明它。 (如果它在一个你没有显示的范围内声明,那就没关系;否则,你会成为Horror of Implicit Globals的牺牲品。(但这可能不是让它无法工作的原因。)to
,否则代码应该在这里爆炸。您没有任何名为to
的变量。$from
。如果它是在一个封闭的范围内定义的公平'nuff,但如果是这样,可能在问题中值得一提。如果以上都不是,那么只需浏览代码即可。现在有很多基于浏览器的调试器。如果您使用Firefox,请安装并使用Firebug。如果您使用Chrome或Safari,则会内置Dev Tools(您可能需要在偏好设置中启用它们)。如果使用IE,IE8及以上版本都有内置调试器;对于IE7及更早版本,您可以使用免费版本的VS.Net。对于Opera,它有一个名为Dragonfly的内置调试器......在所有这些中,您可以在drop
处理程序的第一行设置断点,然后逐步查看出现了什么问题。