gpt4 book ai didi

jquery - Liftweb WiringUI 和 JQueryUI 冲突

转载 作者:行者123 更新时间:2023-12-01 01:37:50 24 4
gpt4 key购买 nike

我正在我的应用程序中做一部分,要求在 valueCell 的函数中加载 HTML block 。

我的代码正在运行,但 JQuery 没有完成其工作,选项卡未显示。我可以读取“Hello world”和选项卡名称,但没有选项卡布局。

此外,我可以补充一点,如果我删除 Wiring UI 的使用(只需在 html 页面中使用 displayFormOK 而不是 displayForm),它就可以很好地工作。

这是我的代码:

片段:

object Menu {

val searchType = ValueCell[Option[SearchType]](Some(Type1))
//I removed some stuff to update the cell

def displayForm = {
WiringUI.apply(searchType)(displayFormAjax)
}

def displayFormOK ={
displayFormAjax(searchType.get)(NodeSeq.Empty)
}

def displayFormAjax(sType: Option[SearchType])(n:NodeSeq):NodeSeq =
{sType match{
case None => <h3> Error on type </h3>
case Some(x) => {x.displayForm}
}}
}

这是我的特征,代表所选对象

trait SearchType {
val name:String
def displayForm:NodeSeq = {
<div id="tabs">
<ul>
<a href={"#"+name}> {name} </a></li>)}
</ul> ++
<div id={name}>Hello World </div>
</div>
)}
}

特征中的代码比较复杂,实际上我想生成任意数量的选项卡。

最后这是我的 html 代码

<script>
$(function() {
$( "#tabs" ).tabs();
});
</script>

<form class="lift:form.ajax">
<div class="lift:Menu.displayForm"></div>
</form>

最佳答案

我找到了解决问题的方法。事实上,由于我在“加载”脚本后添加了一些 html block ,因此它没有应用于我的 block 。因此,每次使用 WiringUI 时我都必须调用该脚本。这是我的解决方案:

def displayForm = {
def cmdG(id: String, first: Boolean, setCmd: JsCmd) = new JsCmd{
def toJsCmd = setCmd.toJsCmd + "; $(\"#tabs\").tabs();"
}

WiringUI.apply(searchType,cmdG _)(displayFormAjax)
}

显然我从我的 html 文件中删除了脚本。

注意:我还意识到这不是我的代码中的最佳解决方案,我现在将使用此 JsCmd 功能来禁用我不想使用的选项卡。

关于jquery - Liftweb WiringUI 和 JQueryUI 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8861592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com