私は次のノックアウトHTMLコードを持っています:
<table class="vehicles" data-bind="with: chosenCategoryData">
<tbody data-bind="foreach: Vehicles">
<tr data-bind="click: $root.goToVehicle">
<td data-bind="text: Brand"></td>
<td data-bind="text: Model"></td>
<td data-bind="text: Registration"></td>
<td><button data-bind="click: $root.deleteVehicle">Delete</button></td>
</tr>
</tbody>
</table>
任意の行をクリックすると、詳細ページに移動します。
[削除]ボタンをクリックすると、この行の要素が削除されます。
この削除ボタンは最後の列にあります。
ここでの問題は、削除ボタンをクリックすると、deleteVehicleというノックアウトイベントがトリガーされる(ok)だけでなく、goToVehicleイベントもトリガーされる(nok)ことです。
削除ボタンがクリックされたときに行のクリックイベントを回避するにはどうすればよいですか?
ありがとう。
アップデート
deleteVehicleの背後にあるイベントは次のとおりです。
self.deleteVehicle = function (vehicle)
{
$.ajax({ url: "/api/vehicle?id=" + vehicle.VehicleId, type: "DELETE" });
location.hash = vehicle.Category;
}
ご覧のとおり、最初にajax呼び出しを実行して要素を削除します。次に、グリッドのリロードを強制します。clickBubbleイベントハンドラーを使用すると、deleteVehicle関数でajax呼び出しが実行されますが、実行されませんlocation.hash = vehicle.Category;
。だから私のグリッドは更新されませんか?