knockout click点击事件及事件源解释
綁定click點(diǎn)擊事件示例
<body>you've clicked<span data-bind="text:number"></span><button data-bind="click:count">Click Me</button> </body> <script type="text/javascript">var viewModel={number:ko.observable(0),count:function(){var preCount=this.number();this.number(preCount+1);}};ko.applyBindings(viewModel); </script>結(jié)果
you’ve clicked 0
Click Me
當(dāng)點(diǎn)擊Click Me 的時(shí)候(you’ve clicked 0) 0會(huì)加1,無限疊加
事件源:( event )
在事件中,當(dāng)前操作的那個(gè)元素就是事件源。比如網(wǎng)頁(yè)元素中a標(biāo)簽和input都有onclick事件,當(dāng)點(diǎn)擊a發(fā)生onclick事件時(shí),事件源就是a標(biāo)簽,當(dāng)點(diǎn)擊input發(fā)送onclic事件是,事件源就是input.
有些情況,你可能需要使用事件源對(duì)象,Knockout會(huì)將這個(gè)對(duì)象傳遞到你函數(shù)的第一個(gè)參數(shù):
<button data-bind="click: myFunction">Click me </button> <script type="text/javascript">var viewModel = {//knockout默認(rèn)是將源事件作為函數(shù)的第一個(gè)參數(shù),你可以在button中不傳event這個(gè)參數(shù)myFunction: function(event) {if (event.shiftKey) {} else {} }};</script>如何獲取事件對(duì)象那??
var e = event || window.event;這句話就是定義了一個(gè)變量來獲取事件對(duì)象,因?yàn)椴煌臑g覽器獲取事件對(duì)象的方法有點(diǎn)不太一樣,IE下是window.event,標(biāo)準(zhǔn)下是event,為了兼容所以寫了event || window.event.
允許執(zhí)行默認(rèn)事件
//如果綁定了click事件后,默認(rèn)事件為點(diǎn)擊事件href的時(shí)間將不會(huì)觸發(fā) <a href="http://www.baidu.com" data-bind="click:myFunction" taget="_blank">Baidu</a><script type="text/javascript">var viewModel = {//當(dāng)點(diǎn)擊A標(biāo)簽時(shí)會(huì)執(zhí)行這個(gè)函數(shù),然后結(jié)束,不會(huì)進(jìn)行跳轉(zhuǎn)myFunction: function() {alert("OK");}}; </script>//解決辦法 <a href="http://www.baidu.com" data-bind="click:myFunction" taget="_blank">Baidu</a><script type="text/javascript">var viewModel = {//當(dāng)點(diǎn)擊A標(biāo)簽時(shí)會(huì)執(zhí)行這個(gè)函數(shù)后在進(jìn)行跳轉(zhuǎn)myFunction: function() {alert("OK");return true;}}; </script>更多click事件請(qǐng)點(diǎn)擊這里
總結(jié)
以上是生活随笔為你收集整理的knockout click点击事件及事件源解释的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Petsc求解非线性方程,SNES对象的
- 下一篇: C++实验一简单的C程序设计(一)