0

我要疯了。我有一系列绑定了点击事件的 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 字符串中添加了一些唯一标识符,问题就解决了。谢谢你的领导!

4

1 回答 1

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;
          });
于 2012-05-14T06:05:42.547 回答