3

我有一个带有按钮的视图,当它被单击时,它会调用 remoteFunction(ajax Call) 以使用具有与之关联的 jQuery 函数的模板更新 div。但是那个 jQuery 函数不能识别更新后的 div 中的元素。因此 jQuery 函数无法正常工作以呈现视图。

我的观点看起来像

<input type="button" value="Something" id="someButton" class="button" onclick="someFunction()"/>
<div id="updateDiv"> </div>

单击按钮时调用的js看起来像

function someFunction() {
    ${remoteFunction(controller:'myController', action:'someAction',update: 'updateDiv'
    )};     
    functionForJQuery();
}
function functionForJQuery(){
    var $someThing = $('.someClassName');
}

myController中,

def someAction= {
    //doSomething
    render (view:"/templates/_myTemplate")
}

最后_myTemplatetemplate

<g:textField class="someClassName" value="someValue" />

但就像我上面说的,当调用 functionForJquery 时,它不识别那个 textField。有人可以帮我解决这个问题吗?

而且我也尝试过 onComplete,或者在 remoteFunction 之后。

4

2 回答 2

2

查看要在选择器中使用的 jQuery .on(jQuery 1.7 或更高版本)函数或.delegate(1.7 之前的)函数。这些将处理程序附加到页面首次加载或动态添加时存在的选定元素。像这样的东西:

function functionForJQuery(){
    $('body').delegate(".someClassName", "click", function() {
       //do whatever here
    });
}

这会将函数附加到事件的bodywith 类中的元素。someClassNameclick

于 2012-07-05T20:03:46.073 回答
0

在您的控制器中,

尝试作为

  def someAction= {
  render template:"/templates/_myTemplate", model:model;
  }

代替

 def someAction= {
//doSomething
render (view:"/templates/_myTemplate")
}

祝你好运

于 2012-09-10T13:10:22.060 回答