2014-01-12 117 views
2

我有一个按钮在javascript中调用函数。该JavaScript反过来运行两个连续的Ajax调用。第一个完成后,它会做一些额外的工作,然后运行第二个Ajax调用。第二次点击后按钮不起作用

该按钮在第一次点击时起作用。然而,当我想点击它再次出现以下错误弹出...

Uncaught TypeError: object is not a function 

这是参考我的函数被调用的“onClick”从按钮。

我对ajax很新,但我确信这不应该发生。其他按钮工作得很好,并且它们都从相同的脚本调用函数。它似乎只是这一个功能。我会希望有一个分号丢失或什么的,但然后第一次不会工作...另外,我知道该函数完成执行,因为我调试该函数,它到达底部...

这里是我的情况下,你有兴趣的Ajax调用...

var $response = $.ajax({ 
    url: $abs_filename, 
    type: 'HEAD', 
    async: false, 
    success: function() { 
     console.log('done'); 
    } 
}).status; 
($response != "200") ? $exist = false : $exist = true; 

....很多这里 ....

var response = $.ajax({ 
    type: 'POST', 
    url: '/SERT/includes/file_operations.php',//url of receiver file on server 
    data: {saves: $save_data}, //your data 
    dataType: 'text', //text... 
    success: function(res) { 
     alert(res); 
    }, 
    async: false 
}).status; 

编辑额外的代码: 我功能由

调用
<input type="button" .... onclick="save_session()"> 
+0

我已阅读其他论坛帖子上的类似情况,但它们似乎不适用于我的问题......另外,我确实尝试了他们的解决方案,但他们没有解决问题。 – harmonickey

+1

请发布'click'监听器绑定 –

+4

我停止阅读有关我看到'($ response!=“200”)的时间? $ exist = false:$ exist = true;'。 – cHao

回答

0

您实际上没有显示导致错误的代码。

但是...

不要这样做;它不会做你认为它做的事。

($response != "200") ? $exist = false : $exist = true; 

这样做:

$exist = $response == "200"; 

而刚刚切勿使用同步XHR。

+1

看起来它应该是等于,而不是等于。 :P – cHao

+0

是的,刚刚注意到。 :-) –

0

我能弄明白......

所以我有一个jQuery追加操作save_session()函数内部发生的。这个行动是这样的...

$bottom_section.append('<input type="hidden" name="save_session" value="' + $total + ' ' + $paragraph + '">'); 

当我把这个出来,那么整个事情按预期工作。我的猜测是通过将输入“save_session”命名为内存中的save_session()的函数定义。现在没有定义冲突,那就没问题。

相关问题