Platform.js(Polymer),jQuery 2.x.x和Bootstrap - 错误

时间:2014-07-24 19:25:42

标签: javascript jquery twitter-bootstrap polymer platform

我在空白页面上包含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,我很高兴知道。

感谢。

1 个答案:

答案 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