Rewriting ajaxCall_* to incorporate Vik's idea fixes this:
private def ajaxCall_*(jsCalcValue: JsExp, func: AFuncHolder):
(String, JsExp) = {
val (n, r) = fmapFunc(func)(name =>
(name, makeAjaxCall(JsRaw("'"+name+"=' +
"+jsCalcValue.toJsCmd))))
("'" + n + "'", r)
}
Thanks.
On Apr 1, 9:37 am, TylerWeir <[email protected]> wrote:
> Excellent, thanks Derek, Vik, I'm back on this today.
>
> On Apr 1, 9:03 am, Viktor Klang <[email protected]> wrote:
>
>
>
> > On Wed, Apr 1, 2009 at 2:55 PM, Derek Chen-Becker
> > <[email protected]>wrote:
>
> > > It looks like it's missing a function call. Compare
>
> > > onclick="lift_ajaxHandler(...
>
> > > to
>
> > > onclick="(F687305521435R3K,lift_ajaxHandler
>
> > > I'm no JS guru, so that second one might be perfectly valid JS, but it
> > > looks weird to me.
>
> > I'd recommend to stay away from referring to objects by reference instead of
> > by id..
> > (all kinds of weird stuff can happen when you start to remove objects/have
> > partial rendering)
>
> > I.e. somefun('F687305521435R3K',lift_ajaxHandler) instead of
> > somefun(F687305521435R3K,lift_ajaxHandler)
> > (Note the single-quotes.)
>
> > > Derek
>
> > > On Tue, Mar 31, 2009 at 9:57 AM, TylerWeir <[email protected]> wrote:
>
> > >> I'm wading into an area that I'm a bit unfamiliar with and not sure if
> > >> I'm running in a bug.
>
> > >> Snippet code:
> > >> class HelloWorld {
> > >> def ajaxFunc1() : JsCmd = JsRaw("alert('Button1 clicked')")
>
> > >> def ajaxFunc2(str: String) : JsCmd = {
> > >> Log.info("Received" + str)
> > >> JsRaw("alert('Button2 clicked')")
> > >> }
>
> > >> def renderAjaxButtons(xhtml: NodeSeq): NodeSeq = {
> > >> bind("ex", xhtml,
> > >> "button1" -> SHtml.ajaxButton("Press Me", ajaxFunc1 _),
> > >> "button2" -> <button>Press Me 2</button> % ("onclick" ->
> > >> SHtml.ajaxCall(Str("Button-2"), ajaxFunc2 _)))
> > >> }
> > >> }
>
> > >> Which is in this template:
> > >> <lift:HelloWorld.renderAjaxButtons>
> > >> <ex:button1 /><br />
> > >> <ex:button2 /><br />
> > >> </lift:HelloWorld.renderAjaxButtons>
>
> > >> And is rendered thusly:
> > >> <button onclick="lift_ajaxHandler('F687305521434PIG=true', null,
> > >> null); return false;">Press Me</button><br />
>
> > >> <button onclick="(F687305521435R3K,lift_ajaxHandler
> > >> ('F687305521435R3K=' + 'Button-2', null, null))">Press Me 2</
> > >> button><br />
>
> > >> Button 1 is find, but Button 2 causes FireBug to whine:
> > >> F687305521435R3K is not defined
> > >> onclick(click clientX=500, clientY=239)2 (line 2)
> > >> [Break on this error] F687305521435R3K,
> > >> lift_ajaxHandl...F687305521435R3K=Button-2", null, null);
>
> > >> Does the second onclick look incorrect to you?
>
> > --
> > Viktor Klang
> > Senior Systems Analyst
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---