Автоматическое получение события щелчка на загрузке страницы

Я хочу создать 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')">