【问题标题】:Grails rendered content accessing id elements dynamicallyGrails 呈现内容动态访问 id 元素
【发布时间】:2013-01-02 21:07:57
【问题描述】:

AJAX 内容正在通过表单内的 remoteLink 函数呈现以填充手风琴(只是一点背景信息)。

在双击 JQuery Accordion 小部件的每个段落内容时调用的 function 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>

用尽了探索的途径,我确信我以前做过这样简单的事情,完全没问题:/

请看两张截图以获得更好的洞察力,谢谢

【问题讨论】:

  • 为什么在函数内部有一个文档准备函数?
  • 这只是一个测试,我试图探索任何可能发生的奇怪事情。我打算在发布之前删除它,我的坏 Gregg

标签: javascript jquery ajax grails grails-2.0


【解决方案1】:

好吧,看起来您正在使用 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 函数的工作方式而导致的任何动态渲染问题。

【讨论】:

  • 我相信它现在可以工作了,太棒了...我只是要再次进行快速测试
  • 你应该阅读 jQuery 的链接,然后你就会明白它是如何工作的。如果它不适合你,那么你做错了。我有很多这样的代码可以完美地用于动态内容。
  • 我提供的javascript不需要每次加载表单时都加载。它只需要加载一次,所以把它放在一个对你的应用来说是全局的并且只加载一次的脚本文件中。
  • 抱歉,Gregg 是我的一个错误,我深表歉意...我目前正在研究 on 函数,仍在学习 JQuery 和 JavaScript,因为我在这里和那里遇到了奇怪的事情。
  • 我确实有一个简短的问题要问你,如果我可以这么厚脸皮...现在我有一个联系人的id,我真的想拿出电子邮件地址。因此,为了尝试这个,我简单地使用了(id).html(); 并使用警报进行了测试,它给出了null ...当它明显存在时,正如您在上面最初问题的屏幕截图中看到的那样,非常困惑:S 编辑也试过('#'+id).html()
猜你喜欢
  • 2019-04-04
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
  • 2020-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-13
相关资源
最近更新 更多