W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
b-click
的值的字段在methods
里定義. 在方法里面,可以通過event
拿到點擊的上下文關系.
var bs = bui.store({
scope: "page",
methods: {
getMessage: function() {
console.log(event)
}
}
})
<div b-click='page.getMessage'>最簡單</div>
示例:
var bs = bui.store({
scope: "page",
methods: {
getMessage: function(a,b) {
console.log(a) // 輸出3
console.log(b) // 輸出4
}
}
})
<div class="bui-btn" b-click='page.getMessage(3,[4],{"test":"對象"})'>點擊輸出3個參數(shù):3,[4],{"test":"對象"}</div>
如果參數(shù)是對象,需要是一個標準JSON才能轉換,
b-click
屬性值并且一定要用單引號''
.
示例:
var bs = bui.store({
scope: "page",
methods: {
getMessage: function(dom) {
// 這個名字太復雜只能通過屬性的方式獲取, 或者傳索引跟數(shù)據(jù)匹配的方式
var name = $(dom).attr("name");
}
}
})
<div class="bui-btn" b-click='page.getMessage($this)' name="abc復雜名字(a).pdf">點擊輸出3個參數(shù):3,[4],{"test":"對象"}</div>
有些時候,我們不得不通過dom去操作的時候, 可以通過一些內置的參數(shù)傳給方法.
示例:
var bs = bui.store({
scope: "page",
methods: {
getMessage: function(a,b) {
console.log(a) // 當前索引
console.log(b) // 當前的dom對象
},
remove: function(index){
console.log(index); // 拿到跟 a 一樣的索引.
}
}
})
<div b-click="page.getMessage($index,$this)" >
<div b-click="page.remove($parentIndex)" >刪除</div>
</div>
示例里面的
remove
方法, 如果傳的是$index
, 那它永遠等于0, 而$parentIndex
是會根據(jù)父級的元素改變的.
如果層級太深, 通過$parentIndex
都不能獲取到, 那b-target
屬性就可以派上用場了
例如:
<ul class="bui-list">
<li>
<div class="bui-btn">
<h3>標題名</h3>
<!-- $parentIndex 指向的是 bui-btn 而我們要刪除的,其實是li的索引才是跟數(shù)據(jù)一一對應的 -->
<div b-click="page.remove($parentIndex)" >刪除</div>
<!-- 通過b-target 修改了 $index 指向 li -->
<div b-click="page.remove($index)" b-target="li">刪除</div>
</div>
</li>
</ul>
示例:
var bs = bui.store({
scope: "page",
methods: {
getMessage: function(index) {
// 觸發(fā)自定義事件,參數(shù)可以自定義
this.trigger("remove","自定義參數(shù)")
}
},
mounted: function(){
// 加載后, 監(jiān)聽自定義remove的時候做什么事情.
this.on("remove",function (a) {
console.log(a)
})
}
})
<div b-click="page.getMessage($index)" ></div>
通過點擊觸發(fā)a值的改變, 在 a 值改變的時候, 又可以處理不同的事情.
示例:
var bs = bui.store({
scope: "page",
data: {
a: 1
},
methods: {
changeA: function() {
this.a++;
}
},
watch: {
a: function (newVal,oldVal) {
console.log(newVal); // 改變后的值
console.log(oldVal); // 改變前的值
}
}
})
<div class="bui-btn" b-click="page.changeA">改變a的值,觸發(fā)watch事件</div>
點擊的時候,查看chrome控制面板的輸出信息.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: