1

AJAX コンテンツはremoteLink、フォーム内の関数を使用してレンダリングされ、アコーディオンに入力されます (ほんの少しの背景情報)。

JQuery アコーディオン ウィジェットの各段落コンテンツのfunction attatchEmail(test)ダブルクリックで呼び出される 。関数を実行すると、次のようになります... 1 番目のアラートのスクリーンショット& 2 番目のアラートのスクリーンショット.

以下のように段落を選択して段落から内容を取得することはできませんか?

( と に変更.val.htmlてみまし.textた。 も試しました$('#'+testingID)

_form.GSP

function attatchEmail(test) {
    $(document).ready(function()
    {
    var testingID = test.id;
    alert(testingID);
    var testingValue = $(testingID).val();
    alert(testingValue);
    });
};

_contactListAjax.GSP

<g:each in="${contactList}" status = "i" var="contact">
    <h3><a href="#">${contact.contactSurname +',  '+ contact.contactForename}</a></h3>
    <div><p id="contact${contact.id}" ondblclick="attatchEmail(this)">${'Email:  '+contact.email}</p></div>
</g:each>

探索する道が不足しています。完全にうまくいく前に、このような簡単なことをしたことがあると確信しています:/

より良い洞察のために2つのスクリーンショットをご覧ください、ありがとう

4

1 に答える 1

0

jQueryを使用しているように見えますが、jQueryの方法論を実際に購入していないようにも見えます。動作とマークアップを混在させることは、特にjQueryのようなライブラリを使用する場合、最近ではあまり良い習慣とは見なされていません。正確な問題はわかりませんが、次のようなものに変更することをお勧めします。

<g:each in="${contactList}" status = "i" var="contact">
    <h3><a href="#">${contact.contactSurname +',  '+ contact.contactForename}</a></h3>
    <div><p class="contact-email" data-id="${contact.id}">${'Email: '+contact.email}</p></div>
</g:each>

$(function() {
   $("body").on("dblclick", ".contact-email", attachEmail);
});

function attatchEmail(event) {
   var $element = $(event.target);
   var id = $element.data("id");
};

これは、jQuery on関数の動作方法が原因で、動的レンダリングの問題を修正するのに役立ちます。

于 2013-01-02T22:32:01.890 に答える