4

我正在尝试创建一个简单的电梯网络应用程序。因为我想在使用 ajax 调用单击同一页面中的按钮时显示和隐藏两个 div。到目前为止,我尝试了以下代码。

在我看来

 <div id="PGMainDiv" data-lift="ShowBookedTicket" style="width=400px;height=600px;border:2px solid #FF0000;border-radius:5px">
      <div id="sampleDiv" style="font-size:15px;color:#19552D;padding:10px 5px 10px 10px">
       This is a sample div which show and hide while ajax calling
      </div>
      <div style="padding-left:267px">
         <button id="PGOK" value="OK" style="width:70px">OK</button>
      </div> 

 </div>
 <div id="ticketDiv" style="display:none;border:2px solid #FF00FF">
    <p>This is a another sample div which show and hide while ajax calling</p>
 </div>

在我的ShowBookedTicket 片段中

class ShowBookedTicket {

def testFunction(s: String): JsCmd = {                  
        JsCmds.Run("jQuery('#ticketDiv').show()")
        JsCmds.Run("jquery('#sampleDiv').hide()")
        //JsCmds.Function("testJsFunction",List("param"),SHtml.ajaxCall( () => JsRaw("""$('#ticketDiv').show()""")).cmd)._2 
}

  def render = "*" #> {

     "#PGOK [onClick]" #> SHtml.onEvent(testFunction)

   }
 }

在这里,如果我只给出第一个显示代码 ( JsCmds.Run("jQuery('#ticketDiv').show()")) 的 div,它就可以正常工作。但如果我给出第二行,那里什么也没有发生。并且在注释行中也尝试过,但这显示了一些错误(overloaded method value ajaxCall with alternatives: (jsCalcValue: net.liftweb.http.js.JsExp,jsContext: net.liftweb.http.JsContext,func: String => net.liftweb.http.js.JsCmd)net.liftweb.http.GUIDJsExp <and> (jsCalcValue: net.liftweb.http.js.JsExp,func: String => net.liftweb.http.js.JsCmd)net.liftweb.http.GUIDJsExp cannot be applied to (() => net.liftweb.http.js.JE.JsRaw)在 Eclipse 中)。谁能给个答案。。

谢谢……!!

4

1 回答 1

3

您忘记链接两个呼叫。您的函数仅将第二行作为 jsCmd 返回。尝试以下操作:

def testFunction(s: String): JsCmd = {                  
    JsCmds.Run("jQuery('#ticketDiv').show()") &
    JsCmds.Run("jquery('#sampleDiv').hide()")
}

注意:如此所述,您还可以使用内置命令进行隐藏/显示:

def testFunction(s: String): JsCmd = {
    JsCmds.JsShowId("ticketDiv") &
    JsCmds.JsHideId("sampleDiv")
}
于 2013-04-23T06:53:44.560 回答