我在空白页面上包含Platform.js(v0.3.4)(Polymer),jQuery(v2.x.x)和Bootstrap.js(v3.2.0)之后发生了一个奇怪的错误。
使用Safari和Firefox,在(空)页面上的某些事件(例如点击或键盘)上会抛出错误:
TypeError:'undefined'不是函数(评估'elem.getAttribute(name)')
jQuery v1.11.1没有问题,我没有尝试其他版本的平台。无论是Chrome还是Opera。
如果我在Bootstrap中用'dblclick'替换所有'click',则单击时不会再出现错误(当然,它会在dblclick上发生)。
嗯,这没什么大不了的,但令人惊讶。
以下是要测试的代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>PJB</title>
<script src="http://cdnjs.cloudflare.com/ajax/libs/polymer/0.3.4/platform.js"></script>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.js"></script>
</body>
</html>
如果有人知道如何避免这个错误而不破坏Bootstrap,jQuery of Platform,我很高兴知道。
感谢。
答案 0 :(得分:5)
我认为问题与此问题有关:https://github.com/Polymer/platform/issues/69
修复似乎是包装文档和/或document.body。例如:
(function(document) {
// add your jquery handlers here...
$(document).on('click', ...);
})(wrap(document));
此处有更多解释:http://www.polymer-project.org/platform/shadow-dom.html#wrappers