jQuery click()失败并显示“无法转换JavaScript参数”

时间:2013-01-24 02:27:56

标签: javascript jquery event-handling click

以下是设置:用户在我的页面上填写某个表单,该表单通过AJAX(jQuery $.post)提交。在return函数中,我向页面添加了一个与提交的表单相关的元素。此元素附加了click()处理程序。该元素在页面上没有问题,但当我点击它时,我得到了可怕的“无法转换JavaScript参数”。以下是将元素添加到页面的行:

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

同样,这是在jQuery post函数的成功回调中调用的。存在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");
}

1 个答案:

答案 0 :(得分:1)

function appointmentDetails(appID) <--

appID将是一个jQuery事件对象!

它没有像您期望的那样未定义/错误。如果你正在重载这个函数,你需要检查它是否是一个对象/字符串。