use*_*747 25 javascript knockout.js
我想创建一系列的html页面(egdiv有员工详细信息列表).当用户点击div时,我想导航到另一个页面.请看看这个.
问题是当我第一次加载页面时,div的click事件被触发了.如何避免在页面加载事件期间被触发的不必要的点击事件?
<div data-bind="click: clickMe('ok1')">
<h1>Emplyee details</h1>
<p>This is test</p>
</div>
<div data-bind="click: clickMe('ok2')">
<h1>Emplyee details</h1>
<p>This is test</p>
</div>
var ViewModel = function(){
var self = this;
self.clickMe = function(url){
//This function is automatically getting called
//when page loads.
alert(url);
}
}
ko.applyBindings(new ViewModel());
Run Code Online (Sandbox Code Playgroud)
问候,Hemant
Jam*_*xon 50
您需要将函数传递给单击处理程序而不是单击函数的结果.
做好clickMe()火灾的方法,并将结果返回到处理程序.
执行所需操作的一种方法是将函数调用包装在匿名函数中,如下所示:
function(){ clickMe('params'); }
Run Code Online (Sandbox Code Playgroud)
所以你得到:
<div data-bind="click: function(){ clickMe('ok1'); }">
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用方法bind上的函数clickMe传递所需的参数:
clickMe.bind($data, "param1")
Run Code Online (Sandbox Code Playgroud)
所以你得到:
<div data-bind="click: clickMe.bind($data, 'param1')">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9131 次 |
| 最近记录: |