首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >$(this).data('dynamic_id')是未定义的,除非处于警报状态。

$(this).data('dynamic_id')是未定义的,除非处于警报状态。
EN

Stack Overflow用户
提问于 2016-04-10 19:11:51
回答 2查看 365关注 0票数 1

如何使用数据属性将动态生成的id从rails应用程序传递给jQuery?尝试时,该值将返回未定义的值,除非我将其发送到警报框。

此代码(将调试链接用作黑客):

代码语言:javascript
代码运行次数:0
运行
复制
$(document).on "page:change", ->
    $('.debug_link_id').click ->
        alert $(this).data('dynamic_id)

在“警报”框中显示dynamic_id。

但是,使用相同的选择器,此代码:

代码语言:javascript
代码运行次数:0
运行
复制
$(document).on "page:change", ->
    jqVar = $(this).data('dynamic_id')
    $('.debug_link_id').click ->
        alert jqVar

在警报框中显示“未定义”。使用.attr('data-dynamic_id')给出了相同的结果

请告诉我:

  1. 为什么第一段代码工作,而第二段代码不工作
  2. 如果有更好的策略将动态id拖到jQuery中
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-10 19:18:44

尝试使用事件委托在处理程序中将this设置为"#debug_link_id"

代码语言:javascript
代码运行次数:0
运行
复制
  $(document).on "page:change", "#debug_link_id", ->
票数 1
EN

Stack Overflow用户

发布于 2016-04-10 19:19:15

那是因为你在错误的地方指的是this

代码语言:javascript
代码运行次数:0
运行
复制
$(document).on "page:change", ->
    $('#debug_link_id').click ->
        alert $(this).data('dynamic_id)// <-- That "this" is referring a object with id debug_link_id

$(document).on "page:change", ->
    jqVar = $(this).data('dynamic_id') //<-- That "this" is referring a object that I don't know where this is come from...
    $('#link_id').click ->
        alert jqVar
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36534314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档