動作しません。これは、ダイアログのための私のコードです:jqueryのダイアログ:.hideを実行する()メインフォームには
"Save": function() {
$.validator.unobtrusive.parse("#EventManage");
if ($("#EventManage").valid()) {
$.ajax({
url: "/Home/EventSave",
type: 'POST',
data: $("#EventManage").serialize(),
success: function (result) {
//alert("s");
$("#EventManage").html(result);
$.validator.unobtrusive.parse("#EventManage");
LoadEventList();
alert('x');
$('td.hide').hide(); <<<<<
alert('x');
$('#eventlistww').each(function() {
var $table = $(this);
$('tr', $table).each(function() {
var $row = $(this);
$('td', $row).each(function() {
$('td.hide').hide();
});
});
});
}
});
}
},
私は$(「td.hide」)を取得しようとしています。隠す(); < < < < <がメインページで動作します。それがうまくいかない理由はわかりませんが、その2番目のアラート( 'x')を設定すると動作するように見えます。その後、それが実行されます。その警告がなければ、動作しません。
何が問題になりましたか?
EDIT
@ChrisFrancis妙いや、私は第二の部分をコメントアウトし、再びそのアラート魔法を行います。できます。警告なしでは、動作しません。
EDIT2
(、LoadEventListを追加する)次のようになります。
function LoadEventList() {
$("#eventlistww").load("/Home/EventDataList");
}
は私の答えを得るために見えた:
私はそれがで作業してしまっているように見えました代わりにLoadEventList()を変更します。
function LoadEventList() {
$.get('/Home/EventDataList', function (result) {
$('#eventlistww').html(result);
$('td.hide').hide();
});
}
これはなぜ機能するのですか。ただし、.loadメソッドはそれほど役に立ちません。
それは最初の '$(ように私に聞こえますtd.hide ')。'$( 'td.hide')。hide()'をもう一度呼び出すと、2番目の警告の後で動作するように見えます。 –
@ChrisFrancis奇妙なことに、私は第2部をコメントアウトし、そのアラートの魔法をやり直します。できます。警告なしでは、動作しません。 – RicL
2番目のアラートで「OK」をクリックするとDOMが完全にレンダリングされる可能性がありますが、それがなければまだページに要素がない可能性があります。 Dominicが以下に指摘しているように、DOM操作を実行する前にドキュメント準備完了イベントを使用していることを確認してください。 –