Как получить элемент dom в качестве аргумента, используя атрибут data-bind - knockout для манипулирования в моем коде JavaScript? - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу передать содержимое элемента li в качестве аргумента моей функции при использовании атрибута привязки данных, метода click.Например

 <ul>
     <li data-bind='click: titleClick(argument)'>(CONTENT)</li>
 </ul>

Что поставить вместо аргумента для передачи (CONTENT) в мою функцию titleClick?Это моя обработка в js-файле

var MapProcess = function(){
    this.titleClick = function(titleName){
        for (var i = 0; i<model.markers.length; i++){
            if (titleName == model.markers[i].title){
                var infoWindow = new google.maps.InfoWindow({          
                });
                infoWindow.setContent(model.markers[i].buborek)
                infoWindow.open(map, model.markers[i]);
                break;
            };
        };
    };
};

Я хочу, чтобы параметр titleName в моей функции выше соответствовал содержимому, полученному из html.

Заранее спасибо.

1 Ответ

2 голосов
/ 18 апреля 2019

Вторым аргументом в обработчике кликов будет событие щелчка. Из этого вы можете получить целевой элемент и связанный с ним контент.

https://knockoutjs.com/documentation/click-binding.html

var MapProcess = function() {
  this.titleClick = function(data, event) {
    console.log(event.target.textContent);
  }
}

ko.applyBindings(new MapProcess());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

<ul>
  <li data-bind='click: titleClick'>(CONTENT)</li>
</ul>
...