IndexedDB - iPad Safari (ver: 10 & Up) jquery.bind 不起作用



描述:

我有一个功能,可以从indexedDB中获取记录。当使用'jquery.click'将函数调用与元素绑定到元素时,它可以正常工作,但是当我使用'jquery.bind'绑定同一元素'时,它会崩溃WebApp。在调试时我发现应用程序崩溃了。

平台: iPad(iOS版本10&上格),Safari浏览器

问题:'jquery.bind'不起作用。

我尝试的方案:

  1. 我尝试通过绑定元素而不调用indexeddb相关功能 - 工作正常
  2. 我在Windows Tab中尝试了 - 工作正常
  3. 使用jquery.click- 工作正常
  4. 使用jquery.bind绑定元素时 - 崩溃webapp

示例:

$('#ABC').bind('click', function(e) {
 var transaction = db.transaction(['Table1'],'readonly')
 var objStore = transaction.objectStore('Table1');
 var request = objStore.getAll()
 request.onsuccess = function (event) {
       console.log(event);
 })

})

在上述情况下,该应用程序在触发事件时会崩溃,但是如果我们使用jquery.click,则可以正常工作。

请帮助。

看起来您正在使用全局数据库变量,并试图在应用程序的使用寿命中重复使用相同的数据库连接。不能保证在点击事件时,数据库已定义和打开。它可能尚未打开,可能已经关闭,甚至可能无法定义为变量。首先尝试。

其他注释:

  • 对于在单个表上进行交易,您不需要[]
  • 您的请求或交易的日志错误消息,因此您有更多有用的信息
  • 取决于您,但是Readonly是隐式的,因为它是默认值,无需指定
  • 您确实需要更具体地说明崩溃的含义。您的问题当前的措辞使得很难提供帮助。

getAll()直到Safari 10.1(请参阅http://caniuse.com/#feat= indexedDB2) - 我不认为这是通过iOS更新发布的。(至少,我的iPhone报告了用户代理中的10.0。)您确定在其他情况下这在平台上工作,还是错误只是未报告?

正如Josh所指出的那样,很难确切说出您看到什么问题 - 如果"崩溃"您会得到例外,您能告诉我们什么是例外消息?

最新更新