Автоматическое получение события щелчка на загрузке страницы
Я хочу создать html-страницу, в которой есть серия (например, у него есть список деталей сотрудника). Когда пользователь нажимает на div, я хочу перейти на другую страницу. Пожалуйста, взгляните на это.
Проблема - событие click, когда div запускается, когда я загружаю страницу в первый раз. Как я могу избежать ненужных событий кликов, которые запускаются во время загрузки страницы?
Ниже мой html-код
<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());
С уважением, Hemant
Ответы
Ответ 1
Вам нужно передать функцию обработчику кликов, а не результат функции щелчка.
Выполнение clickMe()
запускает метод и возвращает результат обработчику.
Один из способов сделать то, что вы хотите, - это обернуть вызов функции анонимной функцией так:
function(){ clickMe('params'); }
Итак, вы получаете:
<div data-bind="click: function(){ clickMe('ok1'); }">
В качестве альтернативы вы можете использовать bind
функции на вашем clickMe
метод, чтобы передать Params вы хотите:
clickMe.bind($data, "param1")
Итак, вы получаете:
<div data-bind="click: clickMe.bind($data, 'param1')">