Yii2 Menu组件点击父菜单无法跳转指定URL问题求助
这个问题我之前也碰到过,Yii2的Menu组件默认就是这样的:当一个菜单项包含子菜单(items属性)时,父项的链接会被组件处理成仅用于展开/折叠子菜单的触发器,不会触发跳转——这是为了避免同时触发跳转和展开动作造成冲突。
要让父菜单既可以展开子菜单,又能跳转到指定URL,你可以通过给父菜单项添加自定义点击事件的方式解决,具体代码如下:
echo Menu::widget([ 'items' => [ [ 'label' => 'Products', 'url' => '/products', // 添加点击事件,强制触发跳转 'linkOptions' => [ 'onclick' => 'window.location.href = this.href;' ], 'items' => [ [ 'label' => 'New Products', 'url' => '/new-products' ] ] ] ] ]);
补充说明
如果你的项目使用了Bootstrap风格的菜单(Yii2默认集成Bootstrap),上述方法可以完美兼容,点击父菜单时会正常触发跳转,同时子菜单也能正常展开。
另外,还有一种更灵活的方式是自定义itemTemplate,不过对于这个场景来说,添加linkOptions的方法更简单直接,不需要修改组件的默认模板结构。
内容的提问来源于stack exchange,提问作者Roby Sottini
相关产品推荐
相关产品推荐

