最近使用element想实现一下效果,当点击下拉框时会触发事件填充数据,然后显示数据,但是当点击下拉框的时候怎么也触发不了函数。
官网的写法:
在trigger属性设置为click即可。除了使用假数据,从后台获取数据我从来没有运行成功过….
<el-col :span="12">
<span class="demonstration">click 激活</span>
<el-dropdown trigger="click">
<span class="el-dropdown-link">
下拉菜单<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>黄金糕</el-dropdown-item>
<el-dropdown-item>狮子头</el-dropdown-item>
<el-dropdown-item>螺蛳粉</el-dropdown-item>
<el-dropdown-item>双皮奶</el-dropdown-item>
<el-dropdown-item>蚵仔煎</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-col>
我的方式:@click.native=”函数”>,完美解决问题(网上找来的…)
<el-dropdown trigger="click" @click.native="getChild(cate.nodeId)">
<span class="el-dropdown-link">
{{cate.categoryName}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="child in childList" v-text="child.categoryName" >面板</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
js代码:
getChild:function (childId) {
for(var i in app.cateList){
if(app.cateList[i].parentId == childId && app.childList.indexOf(app.cateList[i]) == -1){
app.childList.push(app.cateList[i]);
}
}
}
注:如果在el-dropdown 里面设置了trigger=”click”属性,即为该控件在点击的时候出现数据。如果没有设置该属性,则ElementUI默认为鼠标悬浮事件hover 激活。如果数据在页面写成假数据,那完全没有问题,当鼠标悬停的时候会显示数据。但是如果数据是从后台取到的并且设置的是click事件这里就有一个问题,即:我的是点击才触发函数,当没点击的时候,鼠标悬停在控件上面(此时是没有数据的)会显示出一个”>”的图标。所以在设置为click的时候,虽然设置了trigger=”click”属性也还是触发不了事件,当然还是设置的好。