jquery中的函数在被重定向后不起作用

时间:2017-02-16 15:11:35

标签: javascript jquery html django

在我执行window.location.href以重定向到新页面但是它不起作用后,我试图在jquery函数中运行一个函数(显示一条flash消息)。甚至console.log(" confirmnewpage")也不会出现在新页面上。我已经测试过确认函数showFlashMessage(msg)是否有效,它只是在click函数内部不起作用。有没有办法这样做,以便flashmessage或任何其他功能可以在重定向到新页面后运行?顺便说一句,如果重要的话我会使用django作为我的后端。

由于

my url.py

urlpatterns = [
    url(r'^contact/$', ContactView.as_view(), name='Contact'),
]

我的HTML

<form class='db' action='{% url 'Contact' %}' msg='Hello John!' method="post" style="display: inline">{% csrf_token %}
<input class='btn btn-success buttonspace' type="submit" value="Home">
</form>

我的javascript

<script>
      $(document).ready(function(){
        {% block jquery %}


          function showFlashMessage(message) {
            var template = "<div class='container container-alert-flash'>" + 
            "<div class='col-sm-10 col-sm-offset-1'> " + 
            "<div class='alert alert-success alert-dismissible' role='alert'>" + 
            "<button type='button' class='close' data-dismiss='alert' aria-label='Close'>" +
            "<span aria-hidden='true'>&times;</span></button>" 
            + message + "</div></div></div>"
            $("body").append(template);
            $(".container-alert-flash").fadeIn(500);
            setTimeout(function(){ 
              $(".container-alert-flash").fadeOut(500);
            }, 5000);
          }

          $(".db").click(function(e){
          e.preventDefault()

          var Url = $(this).attr("action");
          var msg = $(this).attr("msg");

          $("#dc").fadeIn("300")
          $("#dc").dialog({
            resizable: false,
            height: 200,
            width: 350,
            modal: true,
            show: { effect: 'fade' }, 
            hide: { effect: 'fade' },
            buttons:{
              1:{       
                id:"close",
                text:"Confirm",
                click: function(){
                  console.log("confirm") 
                  window.location.href = Url

                  console.log("confirmnewpage") //This does not work.
                  showFlashMessage(msg) //This does not work.

                  $(this).dialog("close")
                },
                class: "buy-btn"
              },
              2:{       
                id:"close",
                text:"Cancel",
                click: function(){
                  console.log("cancel")
                  $(this).dialog("close")
                },
                class: "cancel-btn"
              }
            }
          })
          })


        {% endblock %}
    })

 </script>

0 个答案:

没有答案