当通过按钮调用函数时,Javascript只能工作一次

时间:2013-11-05 00:01:49

标签: javascript django

我有一个调用Django URL的Javascript页面,但这个调用只运行一次。

html代码在这里:

<script>
        function myFunction(pk) {
            if ($.data(this, 'submitted')){
                return false;
            }
            $.data(this, 'submitted', true);

            $.get("{%url 'myViewURL' %}",{req:pk}, function (data) {
                $.data(this, 'submitted', false);//libero

            });
        }</script>

按钮代码

<button onclick="myFunction({{id}});">Click Me</button>

观看代码:

def myFuncView(request):
p_id=request.GET['req']
do_stuff(p_id)
return  redirect('anotherURL',p_id,permanent=True)

第一次按下按钮是什么时候,它会触发,但之后它不再起作用,即使我刷新页面或转到另一页然后回来!

1 个答案:

答案 0 :(得分:0)

this函数中的

get是指ajax请求,而不是启动它的按钮。

您需要存储对this的引用,以便您可以在不同的上下文中使用它:

var self = this;
$.get("{%url 'myViewURL' %}", {
    req: pk
}, function (data) {
    $.data(self, 'submitted', false); //libero

});