JSFiddlesでBootstrapテーブルをテストしているときに、テーブル内のボタンをクリックすると、ボタンが消えて通常のテキストに置き換えられるようにしたいと考えました。ここでは、マークアップの関連する部分である。しかし、hello
がでレンダリングされないでしょう.empty()を使用した後、なぜDOM要素にHTMLを挿入できないのですか?
function ViewModel() {
var self = this;
self.dosomething = function (data, event, param1, param2) {
var $stuff = $(param2.target).prop("disabled",true);
var $stuff2 = $(param2.target).hasClass("disabled");
var $stuff3 = $(param2.target).parent();
$(param2.target).parent().empty();
$(param2.target).parent().html("hello");
}
self.donext = function(){
var $stuff = $(".disabled").prop("disabled",false);
}
}
var app = new ViewModel();
ko.applyBindings(app);
:だから私は、以下のなかった、ボタンがクリックされたときにイベントをバインドするKnockoutJSを使用して
<tbody>
<tr>
<td>John Doe</td>
<td>[email protected]</td>
<td><button class="disabled" data-bind="click: dosomething.bind($data, 'was', 'sup')" type="button" class="btn btn-warning">Crear Cuenta</button></td>
</tr>
</tbody>
すべて。しかし、私が$(param2.target).parent().empty();
行を削除したとき、ボタンは私が元々望んでいた通りhello
に置き換えられました。 .empty()
が子コンテンツのみを削除した場合、なぜ後でhtmlコンテンツを追加できないのですか?
これは 'foreach'バインディングの中にありますか? KOのUIからアイテムを無効にするか、削除する簡単な方法があります。これをjqueryを使って削除すると、望ましくない動作につながります。 – adiga
@adiga実際にはい。問題は既に解決されていますが、私が言及したUIから項目を削除するより良い方法に興味があります。これらの方法についてもっと知ることができるか、どこで私にヒントを教えてください。 – CodeIntern