jquery - 点击函数获取id失败

标签 jquery

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

在界面上,每个月日都有自己的ID,根据常见的class="linky"的文件结构设置,例如: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则没有。

enter image description here

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

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

我尝试将“-”更改为“_”
将 id 设置为 'asd'
多种排列……我认为可能是错误的。

我找不到解决方案!!
这里有什么对你来说是显而易见的吗?
即使是最晦涩的建议也会受到欢迎。谢谢。

最佳答案

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

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

关于jquery - 点击函数获取id失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30067074/

相关文章:

javascript - 如何检查 DOM 中是否存在 id(已经使用长度概念)?

javascript - Jquery .each() 仅替换第一个找到的

当在html表最后一行中按Enter键时,javascript插入与第一行相同的新行

jquery - 根据其背景图像高度响应地调整 div 的大小

javascript - 在我的 sharepoint 母版页中添加 JavaScript 来取消选中复选框已更改页面标题

javascript - AngularJS 选择框中的默认静态 HTML 值

jquery - 对 WCF Restful 服务的 Json 调用 (jquery) 始终运行错误函数

jquery - 在响应式图像上使用 jcrop

jquery - 无法将图像作为背景。手机版

jquery - 将匿名对象发布到 MVC 操作