我疯了。我有一系列div,它们绑定了点击事件。他们中的大多数按预期工作,但其中一些只是什么都不做。它们之间的代码没有区别(无论是在生成它们的javascript中还是在元素检查器中看到的结果HTML)。他们都在Safari中工作,但在Chrome中我有时会失败。在下面的代码中,即使是“PLAY”也从未写入控制台。
分享代码很难,因为它是如此大的一部分,但它基本上如下所示。首先是一些从javascript写入文档的HTML:
<div class='thumbnail' id='p-"+ip+"'></div>
结果如下:
<div class='thumbnail' id='p-220'></div>
然后我将click()绑定到它上面,如下所示:
playHandler(ip);
function playHandler(ip) {
$("#p-"+ip).click(function()
console.log("PLAY");
popTranscription.listen("canplayall",function() { this.currentTime(ip) });
popTranscription.play();
cued = true;
});
}
大多数情况下,点击div会触发绑定功能。有时不是。它始终是相同的特定缩略图类div不起作用(例如,我在文档中有很长的列表,每个都用'ip'变量区分。即ip 1,2,3总是有效,而4总是有效不行。)。
对不起,我没有更多要展示的内容,但是有没有人对找什么有任何想法?我失去了它。我尝试过使用bind()而不是click()。我尝试使用onclick而不是jquery,但这也给了我奇怪的不一致行为(有时候它会找到函数,有时候却找不到)。
更新:问题与页面上存在的重复ID有关。我在ID字符串中添加了一些唯一标识符,并清除了问题。谢谢你的领导!
答案 0 :(得分:0)
试试这种方式
$(".thumbnail").click(function() {
var idchunk = $(this).attr('id');
var ip = idchunk.split('-');
console.log("PLAY");
popTranscription.listen("canplayall",function() { this.currentTime(ip[1]) });
popTranscription.play();
cued = true;
});