1. 程式人生 > >Kendo MVVM 數據綁定(三) Click

Kendo MVVM 數據綁定(三) Click

停止 bject 技術 back rom js xml function cli tps

Kendo MVVM 數據綁定(三) Click

Click 綁定可以把由 ViewModel 定義的方法不綁定到目標 DOM 的 click 事件。當點擊目標 DOM 元素時觸發 ViewModel 的對應方法。例如:

使用 Click 綁定

<div id="view">
    <span data-bind="click: showDescription">Show description</span>
    <span data-bind="visible: isDescriptionShown, text: description"></
span> </div> <script> var viewModel = kendo.observable({ description: "Description", isDescriptionShown: false, showDescription: function (e) { // show the span by setting isDescriptionShown to true this.set("isDescriptionShown", true); } }); kendo.bind($(
"#view"), viewModel); </script>

技術分享圖片

實際上,click 綁定是 events 綁定的一個特例,下面的兩種實現是等效的:

<span data-bind="click: clickHandler"></span>
<span data-bind="events: { click: clickHandler }"></span>

註: Kendo MVVM 的 DOM 事件參數 e 封裝在 jQuery 的 Event 對象中。

中止事件向上傳遞

如果需要終止事件向上傳遞(event bubbling),可以調用 stopPropagation 方法。

<span data-bind="click: click">Click</span>
<script>
var viewModel = kendo.observable({
    click: function(e) {
        e.stopPropagation();
    }
});

kendo.bind($("span"), viewModel);
</script>

停止事件缺省處理

如果要取消某些 DOM 元素單擊後的缺省處理函數,比如轉到其它頁面或是提交表單,為了取消這些缺省實際處理,可以調用 preventDefault() 方法。例如:

<a href="http://example.com" data-bind="click: click">Click</span>
<script>
var viewModel = kendo.observable({
    click: function(e) {
        // stop the browser from navigating to http://example.com
        e.preventDefault();
    }
});

kendo.bind($("a"), viewModel);
</script>

Kendo MVVM 數據綁定(三) Click