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/