admin管理员组

文章数量:1024615

I've seen similar questions asked but I couldn't make it work for me with Knockout 'data-bind'

I have a parent div with some multiple divs inside. On the parent div I have a click event, that I do not want to fire on a specific child div that has some other event handling.

I have something like this:

<div class='parent' dataBind='click: parentClicked'>
  <div class='child' dataBind='click: childClicked'></div>
  ....some other stuff...
</div>


In my view model I tried:

function parentClicked() {
  alert('parent clicked');
}
function childClicked(event) {
  alert('child clicked');
  event.stopPropagation();
}


I get that 'event.stopPropagation()' is not a function.
What am I doing wrong?

I've seen similar questions asked but I couldn't make it work for me with Knockout 'data-bind'

I have a parent div with some multiple divs inside. On the parent div I have a click event, that I do not want to fire on a specific child div that has some other event handling.

I have something like this:

<div class='parent' dataBind='click: parentClicked'>
  <div class='child' dataBind='click: childClicked'></div>
  ....some other stuff...
</div>


In my view model I tried:

function parentClicked() {
  alert('parent clicked');
}
function childClicked(event) {
  alert('child clicked');
  event.stopPropagation();
}


I get that 'event.stopPropagation()' is not a function.
What am I doing wrong?

Share Improve this question asked Jan 15, 2016 at 9:28 DragosDragos 77610 silver badges33 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 8

You have to use clickBubble: false. For reference: Preventing the event from bubbling

<div class='parent' dataBind='click: parentClicked'>
  <div class='child' dataBind='click: childClicked, clickBubble: false'></div>
  ....some other stuff...
</div>

I've seen similar questions asked but I couldn't make it work for me with Knockout 'data-bind'

I have a parent div with some multiple divs inside. On the parent div I have a click event, that I do not want to fire on a specific child div that has some other event handling.

I have something like this:

<div class='parent' dataBind='click: parentClicked'>
  <div class='child' dataBind='click: childClicked'></div>
  ....some other stuff...
</div>


In my view model I tried:

function parentClicked() {
  alert('parent clicked');
}
function childClicked(event) {
  alert('child clicked');
  event.stopPropagation();
}


I get that 'event.stopPropagation()' is not a function.
What am I doing wrong?

I've seen similar questions asked but I couldn't make it work for me with Knockout 'data-bind'

I have a parent div with some multiple divs inside. On the parent div I have a click event, that I do not want to fire on a specific child div that has some other event handling.

I have something like this:

<div class='parent' dataBind='click: parentClicked'>
  <div class='child' dataBind='click: childClicked'></div>
  ....some other stuff...
</div>


In my view model I tried:

function parentClicked() {
  alert('parent clicked');
}
function childClicked(event) {
  alert('child clicked');
  event.stopPropagation();
}


I get that 'event.stopPropagation()' is not a function.
What am I doing wrong?

Share Improve this question asked Jan 15, 2016 at 9:28 DragosDragos 77610 silver badges33 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 8

You have to use clickBubble: false. For reference: Preventing the event from bubbling

<div class='parent' dataBind='click: parentClicked'>
  <div class='child' dataBind='click: childClicked, clickBubble: false'></div>
  ....some other stuff...
</div>

本文标签: javascriptKnockout JS prevent click event triggering on a specific childStack Overflow