0

セットアップは次のとおりです。ユーザーは、AJAX (jQuery) を介して送信された、私のページの特定のフォームに記入します$.post。return 関数では、送信されたフォームに関連する要素をページに追加します。この要素には、click()ハンドラーが関連付けられています。要素は問題なくページに表示されますが、クリックすると恐ろしい「JavaScript 引数を変換できませんでした」というメッセージが表示されます。ページに要素を追加する行は次のとおりです。

$('<span class="appointment" id="a'+aid+'">'
    +type+name+'</span>').click(appointmentDetails).appendTo(calSlot);

繰り返しますが、これは jQuerypost関数の成功コールバック内で呼び出されています。すべてのappointmentDetails変数と同様に、関数が存在します。私もこのように試しました:

var newHTML='<span class="appointment" id="a'+aid+'">'+type+name+'</span>';
$(calSlot).append(newHTML);
$("#a"+aid).click(appointmentDetails);

このappointmentDetails関数は、渡された ID を使用するかthis.id、予定 ID を取得してから、jQuery を実行し.postて予定の詳細を取得および表示します。基本は次のとおりです。

function appointmentDetails(appID) {
    if (!appID) var appID=$(this).attr("id").substr(1);
    $.post("data/appointments.php", {aid: appID, action: "details"}, function(data) {
        //Callback stuff. Doubtful it's relevant
    }, "xml");
}
4

1 に答える 1

1
function appointmentDetails(appID) <--

appID は jQuery イベント オブジェクトになります。

あなたが期待しているように、未定義/偽ではありません。この関数をオーバーロードしている場合は、オブジェクト/文字列かどうかを確認する必要があります。

于 2013-01-24T02:39:37.287 に答える