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 以降) 関数または (1.7 より前の) 関数を調べます。.delegateこれらは、ページが最初にロードされたときにそこにある、または動的に追加された選択された要素にハンドラーをアタッチします。このようなもの:

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 に答える