【问题标题】:OnsenUI - Select element with jQuery/JS (ons-template issue?)OnsenUI - 使用 jQuery/JS 选择元素(模板问题?)
【发布时间】:2017-02-21 19:04:56
【问题描述】:

我是 OnsenUI 的新手,到目前为止,我真的很喜欢它的外观和感觉。 我将它与普通 JS 和一点 jQuery 一起使用。

我的问题是: 在使用 ons-template 时,我无法使用 JS 或 jQuery 选择任何内容(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>

感谢您的帮助!

【问题讨论】:

    标签: jquery html cordova onsen-ui onsen-ui2


    【解决方案1】:

    这里的问题是,在执行脚本时,模板仍然没有加载到 splitter-content 中,因此没有 id 为“book”的元素。

    解决方法是在main.html页面初始化的时候添加事件监听。这样,您就可以确定模板已加载,并且您可以选择该模板上存在的任何 ID。

    注意:确保在 &lt;ons-page&gt; 元素上添加一个 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>
    

    【讨论】:

    • 感谢您的澄清!我不知道 Onsen 是如何实现模板的。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多