【问题标题】:Click function fails to get id点击函数获取id失败
【发布时间】:2015-05-06 03:41:39
【问题描述】:

我遇到的问题可能是由于多种原因引起的,所以首先是场景。我正在为一个大约有 12 年历史的新闻档案系统重建一个导航界面。所以,一些遗留问题。我正在使用 php 和 jquery 的组合。
界面截图
数据:
平面文件结构...
目录 - 2015
文件:4-1-2015.dat + 30-1-2015.dat + 等
目录 - 2014
文件:- + 等
每个 *.dat 文件都包含该日期时事通讯的 html。

界面上每个 Month-Day 的 ID 根据文件结构设置,常见的 class="linky" eg: id="4-1-2015" = day-month-year {.dat 后来添加}

PHP 构建一个文件数组;在 [var = 列表] 下方截取

[2015] => Array
[1] => Array ~january
    [0] => 4
    [1] => 30
[2] => Array ~ february
    [0] => 18
[3] => Array
    [0] => 9 etc.

再次使用 PHP 构建第一个屏幕。
警报(见下文)适用于此。

那么 JQUERY...

    $(document).ready(function() {  
var dataArray = <?php echo json_encode($listing); ?>;  // the full array  
var yearArray = <?php echo json_encode($yearList); ?>; // just years  
var newDate = parseInt($("#navYear").text(), 10)-1;    

$.each(dataArray[$("#navYear").text()], function(index, days) { // index=Month value=Day  
dataArray[$("#navYear").text()][index].sort(function(a, b){return a-b}); // numerical order  
    dayings = days.toString().split(','); // monthLinks = [1] 4,19 [2] 4,18,26 [3] 20  
    for ( var d = 0; d <dayings.length; ++d ) {  
monListing = monListing+'<span class="linky" id="'+dayings[d]+'-'+index+'-'+newDate+'">'+monArray[index-1]+' '+dayings[d]+'</span>';  
    }  
    }); // end each...  
$(".linky").click(function() {  
    dataLink = $(this).attr("id");  
    // dataLink = this.id;  
    alert(dataLink);  
    });  
}); // end doc ready  

正如我所提到的,PHP 构建会产生警报。 js没有。

FF 检查器清楚地显示 id 设置为预期的类。但没有警觉。

我已尝试将所有 monListing 值预先设置为整数和字符串。例如。
var eachDay = parseInt(dayings[d], 10);或:
var eachDay = dayings[d].toString();

我尝试将“-”更改为“_”
将 id 设置为“asd”
的多重排列......我能想到的可能是错误的。

我无法解决这个问题!!
这里有什么对你来说很明显的东西吗?
即使是最晦涩的建议也会受到欢迎。谢谢。

【问题讨论】:

  • 当你点击linky你得到了什么??我的意思是它在你的活动中导航??
  • 声明变量:var dataLink = $(this).attr("id");
  • 点击链接没有结果 - 没有“未定义”没有空警报框......什么都没有

标签: jquery


【解决方案1】:

似乎.linky 是您使用代码创建的动态元素,因此您需要使用.on 来启用click 事件:

 $("body").on('click', '.linky', function() {  

【讨论】:

  • YESssss!非常感谢您令人难以置信的迅速响应......并且,一个完全有效的解决方案。当你知道怎么做时很容易。 :))
  • @Arfa 我很高兴它成功了,别忘了标记我的答案 :)
  • 已标记。!我很抱歉忘记了我不经常来这里......但我总是很高兴。
【解决方案2】:

不要做$(this).attr("id"),而是尝试做$(this).id

【讨论】:

  • 如你所见,我尝试了一个简单的 'this.id;'但会尝试你的建议。谢谢
  • 不 :( 出于某种原因,它搞砸了 2015 年的水平 - 这是有效的。奇怪
猜你喜欢
  • 2021-10-04
  • 1970-01-01
  • 2019-09-12
  • 1970-01-01
  • 1970-01-01
  • 2011-04-02
  • 2022-01-20
  • 2016-09-25
  • 1970-01-01
相关资源
最近更新 更多