1

これには簡単な解決策があると確信していますが、これまでのところ、それは私にはわかりません。関数内からjqueryuiを使用してモーダルウィンドウを開こうとしていますが、「ダイアログは関数ではありません」というメッセージが表示されて失敗します。最終的には、モーダルをajax経由でプルされたコンテンツで埋めるつもりですが、モーダルウィンドウをインスタンス化できない理由を理解するために、それを少しだけ削除しました。GoogleCDNのjquery1.7.2とjqueryui1.8.18を使用しています。

<!-- as a link -->
<a href="javascript:view_log('1');">Log 1</a>

<!-- as a button -->
<input type="button" id="thebutton" value="View Log" />

<script type="text/javascript">

/* this works on page load */
var test1 = $(document.createElement('div'));
test1.dialog({ modal:true });
test1.html('Testing');

/* this also works (on page load) */
function displayModal(content) {
    var newDiv = $(document.createElement('div'));
    newDiv.dialog({ modal:true });
    newDiv.html(content);
}
displayModal('Testing by calling displayModal() function');

/* this fails with error "newDiv.dialog is not a function" */
function view_log(id) {
    displayModal('Log for id ' + id);
}

/* this also fails, same error ... */
$('#thebutton').bind('click', function() {
    displayModal('Testing again...');
});

</script>

私のエラーを指摘できるjqueryの専門家はいますか?

ありがとう!

4

1 に答える 1

1

それは私にとってはうまくいっています。私が考えることができる唯一のことは、あなたが使うべきだということです$(document).ready(function() {});

$(document).ready(function() {
    $('#thebutton').bind('click', function() {
        displayModal('Testing again...');
    });
});

ライブデモ

于 2012-06-28T19:04:19.060 に答える