聚合物和 Jquery 选择器
Polymer and Jquery selector
我有以下使用 Polymer 的代码:
<polymer-element name="new-post-page">
<template>
<div id="trumbowyg-demo"></div>
</template>
<script>
Polymer("new-post-page",
{
});
</script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>window.jQuery</script>
<script src="../../bower_components/trumbowyg/dist/trumbowyg.min.js"></script>
<script>$('#trumbowyg-demo').trumbowyg();</script>
</polymer-element>
如您所见,我使用 Jquery 选择器来显示 WYSIWYG 编辑器。不幸的是它没有发生任何事情。它在聚合物元素定义之外工作,这就是为什么我认为这与问题有关。
我该如何解决这个问题?
$('#trumbowyg-demo').trumbowyg()
你需要 #
到 select by id
.
trumbowyg-demo
不在 DOM 内,它仅在元素的 shadow DOM 内。您可以使用标准 CSS 选择器或 Polymer $
映射来获取您的元素,然后将其转换为 jQuery 对象:
$(this.$.trumbowyg-demo).trumbowyg()
您需要在 Polymer 方法中才能访问 this
变量。您应该将代码移至 domReady 方法。
可能还有一个 jQuery 语法来使用影子 DOM 中的选择器(类似于 $(this.shadowDOM).find('#trumbowyg-demo')) , 但我不知道确切的语法。
我是这样工作的:
<link rel="import" href="../bower_components/polymer/polymer.html">
<script href="../bower_components/jquery/dist/jquery.js"></script>
<dom-module id="my-red-frame">
<template>
<div class="redbox">
<content></content>
</div>
</template>
<script>
Polymer({
is: "my-red-frame",
ready: function () {
// Changing background color this way just to provide an example
$(this).find(".redbox").css("background-color", "red");
}
});
</script>
</dom-module>
我有以下使用 Polymer 的代码:
<polymer-element name="new-post-page">
<template>
<div id="trumbowyg-demo"></div>
</template>
<script>
Polymer("new-post-page",
{
});
</script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>window.jQuery</script>
<script src="../../bower_components/trumbowyg/dist/trumbowyg.min.js"></script>
<script>$('#trumbowyg-demo').trumbowyg();</script>
</polymer-element>
如您所见,我使用 Jquery 选择器来显示 WYSIWYG 编辑器。不幸的是它没有发生任何事情。它在聚合物元素定义之外工作,这就是为什么我认为这与问题有关。
我该如何解决这个问题?
$('#trumbowyg-demo').trumbowyg()
你需要 #
到 select by id
.
trumbowyg-demo
不在 DOM 内,它仅在元素的 shadow DOM 内。您可以使用标准 CSS 选择器或 Polymer $
映射来获取您的元素,然后将其转换为 jQuery 对象:
$(this.$.trumbowyg-demo).trumbowyg()
您需要在 Polymer 方法中才能访问 this
变量。您应该将代码移至 domReady 方法。
可能还有一个 jQuery 语法来使用影子 DOM 中的选择器(类似于 $(this.shadowDOM).find('#trumbowyg-demo')) , 但我不知道确切的语法。
我是这样工作的:
<link rel="import" href="../bower_components/polymer/polymer.html">
<script href="../bower_components/jquery/dist/jquery.js"></script>
<dom-module id="my-red-frame">
<template>
<div class="redbox">
<content></content>
</div>
</template>
<script>
Polymer({
is: "my-red-frame",
ready: function () {
// Changing background color this way just to provide an example
$(this).find(".redbox").css("background-color", "red");
}
});
</script>
</dom-module>