Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 非法调用错误_Javascript_Jquery_Post_Live - Fatal编程技术网

Javascript 非法调用错误

Javascript 非法调用错误,javascript,jquery,post,live,Javascript,Jquery,Post,Live,我的脚本页面中只有一个函数,它给了我这个错误:uncaughttypeerror:非法调用。老实说,我以前从未见过这个错误,我在网上发现的其他案例似乎都不适用于我。下面是我的jquery,我不认为有必要提供任何其他部分,但请告诉我,我可以发布其他部分 $(document).ready(function () { /*----UPDATE BOX REQUEST----*/ $(".boxesChange").live("click", function () {

我的脚本页面中只有一个函数,它给了我这个错误:uncaughttypeerror:非法调用。老实说,我以前从未见过这个错误,我在网上发现的其他案例似乎都不适用于我。下面是我的jquery,我不认为有必要提供任何其他部分,但请告诉我,我可以发布其他部分

$(document).ready(function () {
    /*----UPDATE BOX REQUEST----*/
    $(".boxesChange").live("click", function () {
        entry = $(this).closest("tr");
        delivered = $(entry).find("#delivered");
        if ((delivered).is(":checked")) {
            deliveredBoolean = "1";
        } else {
            deliveredBoolean = "0";
        }
        boxesDelivered = $(entry).find("#boxesDelivered").val();
        bubbleWrapDelivered = $(entry).find("#bubbleWrapDelivered").val();
        supplyRequestId = $(entry).find(".boxesSupplyRequestId").val();

        $.post('boxesChange.php', {
            'delivered': delivered,
            'boxesDelivered': boxesDelivered,
            'bubbleWrapDelivered': bubbleWrapDelivered,
            'supplyRequestId': supplyRequestId
        }, function (response) {
            $(this).closest(".boxesScheduleEntry").css("background-color", "#ccffcc");
        });
        return false;
    });
});

我假设错误在这部分中:

function (response) {
  $(this).closest(".boxesScheduleEntry").css("background-color", "#ccffcc");
}
在这里,我想您希望
这个
与上面的一样,当您使用最接近来获取“tr”元素时。但是在这里,
这是$post imho的上下文


您需要在事件处理程序函数的顶部绑定或执行
var-boxChange=$(这),
,然后使用缓存引用

问题在于
$。post
调用。您试图将
'delivered'
设置为
delivered
,这是一个jQuery对象,我想您的意思是
deliveredBoolean

另外,在回调函数
中,这个
不是您所认为的,它是jqXHR对象,而不是元素

var $this = $(this);
$.post(
        'boxesChange.php', 
        {
            'delivered': deliveredBoolean,
            'boxesDelivered': boxesDelivered,
            'bubbleWrapDelivered': bubbleWrapDelivered,
            'supplyRequestId': supplyRequestId
        },
        function (response) {
            $this.closest(".boxesScheduleEntry").css("background-color", "#ccffcc");
        }
);

delivered
是jQuery对象时,使用
'delivered':delivered
是否奇怪?也许你应该做
delivered:delivered.is(“:checked”)?1:0
或者使用你的
deliveredBoolean
工具?@jamund我不知道你把它放在哪里了exactly@radleybobins:在您的
$.post
通话中。在传递给$.post的参数中表示。。。这里有
'delivered':delivered,
,它显然应该传递
deliveredBoolean
值,而不是
delivered
对象的内容。。。所以,试着去做
'delivered':deliveredBoolean,
啊,我明白了,这就消除了错误,谢谢!如果你把它改成一个答案,我可以把它标记为正确的,谢谢你的解释!这是一个很好的想法,但我完全放弃了,问题依然存在。