我正在使用 Scala / Lift 开发一个 Web 应用程序项目。我想让我的应用程序支持拖放以改善用户体验。
但我不太确定如何将 jQuery 部分与 Lift 连接起来。
目前我有一个工作的 UI 部分,一个 div 块有一个名为listRow
的类,它具有一个 HTML5 属性data-stuffid
,该属性具有来自数据库的 ID。
它可以拖到一个名为 的块中,我可以在 JavaScript 中正确nextAction
打印出该字段。data-stuffid
这是我的 JavaScript 代码块:
<script type="text/javascript">
$('.listRow').draggable({
revert: true
});
$("#nextAction").droppable({
accept: ".listRow",
tolerance: "pointer",
activeClass: "dropActive",
hoverClass: "dropHover",
drop: function(event, ui) {
var stuffID = ui.draggable.data("stuffid")
console.log(stuffID)
}
})
但我不知道如何调用 Lift AJAX 处理程序,并在案例中将 stuffID 传递给 Lift。
我想做的是有一个 Scala 函数,如下所示:
def showDialog(stuffID: String): JsCmds
{
// Do some server side work, ex: querying database
// Return a javascript cmds likes SHtml.ajaxButton...etc.
Alert("SutffID:" + stuffID)
}
当用户将a拖到.listRow
“#nextAction”时,showDialog
将被调用,并将javascript返回给浏览器并让浏览器执行它。