OnsenUI - Select 元素与 jQuery/JS(ons-template 问题?)
OnsenUI - Select element with jQuery/JS (ons-template issue?)
我是 OnsenUI 的新手,到目前为止我真的很喜欢它的外观和感觉。
我将它与纯 JS 和一点 jQuery.
一起使用
我的问题是:
当我使用 ons-template 时,我无法使用 JS 或 jQuery select 任何东西(ID,Class 等)。
当我删除它时我没有任何问题,但我正在使用 ons-splitter 作为我的导航方法。 (注意:我也尝试过制表符等)
我做错了什么吗?
<ons-splitter>
<ons-splitter-side id="menu" side="left" width="220px" collapse swipeable>
<ons-page>
sidebar content etc...
</ons-page>
</ons-splitter-side>
<ons-splitter-content id="content" page="main.html"></ons-splitter-content>
</ons-splitter>
<!-- I want to select the ons-list-item #book with jQuery -->
<ons-template id="main.html">
<ons-page>
<ons-toolbar>
<div class="left">
<ons-toolbar-button onclick="fn.open()">
<ons-icon icon="md-menu"></ons-icon>
</ons-toolbar-button>
</div>
<div class="center top-bar-title">Title</div>
</ons-toolbar>
<ons-list>
<ons-list-item id="book">Books</ons-list-item>
</ons-list>
</ons-page>
</ons-template>
<script>
$("#book").click(function(){
alert("TEST");
});
</script>
感谢您的帮助!
这里的问题是脚本执行时,模板还没有加载到splitter-content中,所以没有id为"book"的元素。
解决方法是在main.html页面初始化时添加事件监听器。这样,您就可以确定模板已加载,并且您可以 select 该模板上存在的任何 ID。
注意: 确保在 <ons-page>
元素上添加一个 id。
如何在页面初始化时添加监听器或调用函数:
<ons-splitter>
<ons-splitter-side id="menu" side="left" width="220px" collapse swipeable>
<ons-page>
sidebar content etc...
</ons-page>
</ons-splitter-side>
<ons-splitter-content id="content" page="main.html"></ons-splitter-content>
</ons-splitter>
<!-- I want to select the ons-list-item #book with jQuery -->
<ons-template id="main.html">
<ons-page id="main">
<ons-toolbar>
<div class="left">
<ons-toolbar-button onclick="fn.open()" tappable>
<ons-icon icon="md-menu"></ons-icon>
</ons-toolbar-button>
</div>
<div class="center top-bar-title">Title</div>
</ons-toolbar>
<ons-list>
<ons-list-item id="book" tappable>Books</ons-list-item>
</ons-list>
</ons-page>
</ons-template>
<script>
document.addEventListener("init",function(event){
if(event.target="main"){
$("#book").click(function(){
alert("TEST");
});
}
});
</script>
我是 OnsenUI 的新手,到目前为止我真的很喜欢它的外观和感觉。 我将它与纯 JS 和一点 jQuery.
一起使用我的问题是: 当我使用 ons-template 时,我无法使用 JS 或 jQuery select 任何东西(ID,Class 等)。
当我删除它时我没有任何问题,但我正在使用 ons-splitter 作为我的导航方法。 (注意:我也尝试过制表符等)
我做错了什么吗?
<ons-splitter>
<ons-splitter-side id="menu" side="left" width="220px" collapse swipeable>
<ons-page>
sidebar content etc...
</ons-page>
</ons-splitter-side>
<ons-splitter-content id="content" page="main.html"></ons-splitter-content>
</ons-splitter>
<!-- I want to select the ons-list-item #book with jQuery -->
<ons-template id="main.html">
<ons-page>
<ons-toolbar>
<div class="left">
<ons-toolbar-button onclick="fn.open()">
<ons-icon icon="md-menu"></ons-icon>
</ons-toolbar-button>
</div>
<div class="center top-bar-title">Title</div>
</ons-toolbar>
<ons-list>
<ons-list-item id="book">Books</ons-list-item>
</ons-list>
</ons-page>
</ons-template>
<script>
$("#book").click(function(){
alert("TEST");
});
</script>
感谢您的帮助!
这里的问题是脚本执行时,模板还没有加载到splitter-content中,所以没有id为"book"的元素。
解决方法是在main.html页面初始化时添加事件监听器。这样,您就可以确定模板已加载,并且您可以 select 该模板上存在的任何 ID。
注意: 确保在 <ons-page>
元素上添加一个 id。
如何在页面初始化时添加监听器或调用函数:
<ons-splitter>
<ons-splitter-side id="menu" side="left" width="220px" collapse swipeable>
<ons-page>
sidebar content etc...
</ons-page>
</ons-splitter-side>
<ons-splitter-content id="content" page="main.html"></ons-splitter-content>
</ons-splitter>
<!-- I want to select the ons-list-item #book with jQuery -->
<ons-template id="main.html">
<ons-page id="main">
<ons-toolbar>
<div class="left">
<ons-toolbar-button onclick="fn.open()" tappable>
<ons-icon icon="md-menu"></ons-icon>
</ons-toolbar-button>
</div>
<div class="center top-bar-title">Title</div>
</ons-toolbar>
<ons-list>
<ons-list-item id="book" tappable>Books</ons-list-item>
</ons-list>
</ons-page>
</ons-template>
<script>
document.addEventListener("init",function(event){
if(event.target="main"){
$("#book").click(function(){
alert("TEST");
});
}
});
</script>