javascript - Grails 渲染内容动态访问 id 元素

标签 javascript jquery ajax grails grails-2.0

AJAX 内容正在使用表单内的 remoteLink 函数呈现,以填充 Accordion (只是一点背景信息)。

双击 JQuery Accordion 小部件的每个段落内容时调用的函数attatchEmail(test)。这就是运行该函数时发生的情况... Screenshot of 1st alert & Screenshot of 2nd alert

是否无法像下面这样选择段落并从段落中获取内容?

(我尝试将 .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>

没有探索的途径了,我确信我之前已经做过类似这样简单的事情了:/

请查看两张屏幕截图以获得更好的了解,谢谢

最佳答案

嗯,看起来您正在使用 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 的方式功能有效。

关于javascript - Grails 渲染内容动态访问 id 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14129184/

相关文章:

php - 更改提交按钮的图像

javascript - 在 vorpal 应用程序的 »exit« 帮助文本中更改应用程序名称

php - 使用 jquery-select2 动态依赖下拉列表

mySql 中的 php 数组不会在 DOM 中显示为 json 对象

javascript - 调用JS函数onClick

javascript - 如何使用Javascript从未知大小的数组中获取未知大小的数据?

jQuery - 从元素内部选择元素

jQuery Galleriffic 缩略图访问边框颜色

jquery - 我们可以注册一个写在外部文件上的自定义 Handlebars 助手吗?

javascript - 使用 jQuery 使函数等待 AJAX 调用完成