描述:
我有一个功能,可以从indexedDB中获取记录。当使用'jquery.click'将函数调用与元素绑定到元素时,它可以正常工作,但是当我使用'jquery.bind'绑定同一元素'时,它会崩溃WebApp。在调试时我发现应用程序崩溃了。
平台: iPad(iOS版本10&上格),Safari浏览器
问题:'jquery.bind'不起作用。
我尝试的方案:
- 我尝试通过绑定元素而不调用indexeddb相关功能 - 工作正常
- 我在Windows Tab中尝试了 - 工作正常
- 使用jquery.click- 工作正常
- 使用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所指出的那样,很难确切说出您看到什么问题 - 如果"崩溃"您会得到例外,您能告诉我们什么是例外消息?