代码之家  ›  专栏  ›  技术社区  ›  davidesp

Ionic4组件-菜单:必须有一个“content”元素来监听拖动事件

  •  0
  • davidesp  · 技术社区  · 6 年前

    我有以下代码:

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8" />
    <meta http-equiv="x-ua-compatible" content="ie=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Ionic 4 - Menu</title>
    <link rel="stylesheet" href="https://unpkg.com/@ionic/core@4.0.0-beta.13/css/ionic.bundle.css" />
    <script src="https://unpkg.com/@ionic/core@4.0.0-beta.13/dist/ionic.js"></script>
    <script>
    window.addEventListener('load', event => {
        document.querySelector('.button_details').addEventListener('click', (event) => {
            document.querySelector('.menu_main').toggle();
        });
    });
    </script>
    </head>
    <body>
    
        <ion-menu class="menu_main" side="start">
            <ion-header>
                <ion-toolbar color="secondary">
                    <ion-title>Left Menu</ion-title>
                </ion-toolbar>
            </ion-header>
            <ion-content padding>
                Hello World!
            </ion-content>
        </ion-menu>
        <ion-menu-controller></ion-menu-controller>
    
        <ion-card style="display:inline-block;width:300px">
            <ion-card-header>
                <ion-card-title>Hello World</ion-card-title>
            </ion-card-header>
            <div style="padding:10px 10px;text-align:right;">
                <ion-button color="primary" class="button_details">Details</ion-button>
            </div>
        </ion-card>
    
    </body>
    
    </html>
    

    它运行良好,但有一个例外: 加载页面时,控制台上出现以下错误:

    Error: "Menu: must have a 'content' element to listen for drag events on."
    

    给你这个 CodePen.io :

    https://codepen.io/anon/pen/qJgEzZ/?editors=1011

    在下面你可以试试这里的代码 StackOverflow :

    window.addEventListener('load', event => {
    	document.querySelector('.button_details').addEventListener('click', (event) => {
    		document.querySelector('.menu_main').toggle();
    	});
    });
    <script src="https://unpkg.com/@ionic/core@4.0.0-beta.13/dist/ionic.js"></script>
    <link href="https://unpkg.com/@ionic/core@4.0.0-beta.13/css/ionic.bundle.css" rel="stylesheet"/>
    	<ion-menu class="menu_main" side="start">
    		<ion-header>
    			<ion-toolbar color="secondary">
    				<ion-title>Left Menu</ion-title>
    			</ion-toolbar>
    		</ion-header>
    		<ion-content padding>
    			Hello World!
    		</ion-content>
    	</ion-menu>
    	<ion-menu-controller></ion-menu-controller>
    
    	<ion-card style="display:inline-block;width:300px">
    		<ion-card-header>
    			<ion-card-title>Hello World</ion-card-title>
    		</ion-card-header>
    		<div style="padding:10px 10px;text-align:right;">
    			<ion-button color="primary" class="button_details">Details</ion-button>
    		</div>
    	</ion-card>

    你知道怎么解决这个问题吗?这里少了什么?

    你能用叉子叉我的吗 科迪森 有正确的密码?

    谢谢!

    1 回复  |  直到 6 年前
        1
  •  2
  •   Thomas    6 年前

    如果您不需要滑动手势来打开菜单,可以添加 swipe-gesture="false" 属于 ion-menu 标签。我认为这应该消除错误,但目前还没有。我创造了 an issue on GitHub . https://codepen.io/anon/pen/mzgRBj?editors=1011

    如果你想让刷卡动作起作用,你必须在 离子菜单 元素使用 content-id 属性,请参见 https://codepen.io/anon/pen/BqEpxE?editors=1011