Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 使用jQuery处理按钮/ajax请求_Javascript_Jquery_Ajax_Django - Fatal编程技术网

Javascript 使用jQuery处理按钮/ajax请求

Javascript 使用jQuery处理按钮/ajax请求,javascript,jquery,ajax,django,Javascript,Jquery,Ajax,Django,我对jQuery相当陌生,尽管有很多关于如何绑定到按钮的教程,但我相信我的设置有点复杂(超出范围) 我所拥有的: -我正在使用Django在视图上填充make 这是我的模板: <div class="container"> <div class="row"> <div class="btn-group" id="makesTable"> {% if makes %} {% for make in makes %}

我对jQuery相当陌生,尽管有很多关于如何绑定到按钮的教程,但我相信我的设置有点复杂(超出范围)

我所拥有的:

-我正在使用Django在视图上填充make

这是我的模板:

    <div class="container">
    <div class="row">
    <div class="btn-group" id="makesTable">
    {%  if makes %}
    {% for make in makes %}
    <button  type="button" name="button" class="btn btn-default" id="{{ make.id }}">
        <br />
        <img class="center-block" src="[REDACTED]"  />
        <br />
        <p>{{ make.name }}</p>
    </button>
    {% endfor %}
{% endif %}
</div>
</div>
</div>
  • 同时,jQuery将隐藏/删除按钮元素(琐碎)
    通过以下代码段(anf)将淡出添加到单击侦听器中完成此操作:

    function fadeOut() { $( "#makesTable" ).fadeOut( "slow", function() {}); };  
    
  • 然后,我想使用id from按钮单击来向我的API发出AJAX请求,其中django URL路由是:

    url(r'^makes/(?P<pk>[\d]+)/$', views.MakesDetail.as_view(), name='makes-instance'),  
    
    • 最后,使用这个API响应,我希望填充一个类似的按钮模板(用模型替换make)
    这是一个单页应用程序,使用JSON和AJAX时不需要刷新页面

    充分披露:我是一名入门级程序员/web开发人员

    代码段:

    <div class="main-content container-fluid"> 
     <div class="container">
       <div class="row">
         <div class="btn-group" id="makesTable">
            <button  type="button" name="button" class="btn btn-default" id="200002038">
            <br />
            <img class="center-block" src=" "  />
            <br />
            <p>Acura</p>
        </button>
    
        <button  type="button" name="button" class="btn btn-default" id="200464140">
            <br />
            <img class="center-block" src=""  />
            <br />
            <p>Alfa Romero</p>
        </button>
    
    <script>
      $(document).ready(function() {
       $(document).on( "click", "button", function() {
         alert($(this).attr('id')); //testing functionality
        });
     });
    </script>
    <script src="assets/lib/jquery/jquery.min.js" type="text/javascript"></script>
    <script src="assets/lib/perfect-scrollbar/js/perfect-scrollbar.jquery.min.js" type="text/javascript"></script>
    <script src="assets/js/main.js" type="text/javascript"></script>
    <script src="assets/lib/bootstrap/dist/js/bootstrap.min.js" type="text/javascript"></script>
    <script type="text/javascript">
      $(document).ready(function(){
        //initialize the javascript
        App.init();
      });
    
    </script>
    </div>
     </div>
      </div>
       </div>
    
    
    

    阿库拉



    阿尔法罗梅罗

    $(文档).ready(函数(){ $(文档)。在(“单击”,“按钮”,函数()上){ 警报($(this.attr('id'));//测试功能 }); }); $(文档).ready(函数(){ //初始化javascript App.init(); });
    因为按钮是动态生成的。您必须使处理程序如下所示:

    $(document).on('click', 'button.btn', function(e) {   
        alert($(this).attr('id')); //testing functionality
    });
    

    由于按钮是动态生成的。您必须使处理程序如下所示:

    $(document).on('click', 'button.btn', function(e) {   
        alert($(this).attr('id')); //testing functionality
    });
    

    从您回复的评论中,我希望您在已经呈现按钮之前附加处理程序,因此我建议您使用冒泡事件概念,如下所示:-

    $(document).ready(function() {
       $(document).on( "click", "button", function() {
          alert($(this).attr('id')); //testing functionality
       });
    });
    

    警报将弹出,您可以执行任何其他操作。

    从您的回复评论中,我希望您在按钮已呈现之前附加处理程序,因此我建议您使用如下冒泡事件概念:-

    $(document).ready(function() {
       $(document).on( "click", "button", function() {
          alert($(this).attr('id')); //testing functionality
       });
    });
    

    然后警报会弹出,您可以做任何您想做的事情。

    首先,通过类与按钮的事件关联应该更好(这是一种更好的做法)。对于javascript,请单击代码检查其他答案。 对于ajax请求,您可以参考以下链接:


    通过示例“when”函数,它允许您知道请求何时结束并在之后执行任何操作。

    首先,通过类与按钮的事件关联应该更好(这是一种更好的做法)。对于javascript,请查看其他答案。 对于ajax请求,您可以参考以下链接:



    通过示例“when”函数,它允许您知道请求何时结束并在之后执行任何操作。

    因此,在所有这些中,什么不起作用?您被困在哪里?@sumama waheed,我的问题是:1.我不确定如何使用jQuery 2进行按钮选择、ajax请求和处理响应。模板和API是唯一的功能部分。我想我要问的是如何部署所有这些。你不能真的问我想做a、b、c、d以及如何做。你已经解决了一个特定的问题,比如jquery的按钮选择。如果你遇到问题,问一个问题,关于你到目前为止就这个特定问题所做的尝试警报是否显示当你点击按钮时???@SumamaWaheed我觉得这是一个特定的问题。我想使用jQuery通过按钮来处理API请求。那么,在所有这些中,什么不起作用?你被卡在哪里了?@sumama waheed,我的问题是:1.我不确定如何使用jQuery进行按钮选择、ajax请求和处理响应。2.模板nd API是目前唯一的功能部件。我想我要问的是如何部署所有这些。你不能真的问我想做a、b、c、d以及如何做。你已经解决了一个特定的问题,比如jquery的按钮选择。如果你遇到问题,问一个问题,关于到目前为止你在该特定问题上做了哪些尝试问题当你点击按钮时警报是否会出现???@SumamaWaheed我觉得这是一个特定的问题。我想使用jQuery通过按钮处理API请求。请参阅编辑代码片段。按钮仍然不起作用。谢谢!谢谢,这按要求工作。我的问题是在导入之前放置我的代码块,没有错!你错了uld将代码重新排列在Jquery引用脚本标记之后,如下$(document).ready(function(){$(document).on(“click”,“button”,function(){alert($(this).attr('id');//testing functional});});如果答案有用,至少要感谢upvote(这个答案对我很有用按钮)然后讨论编辑查看编辑代码片段。按钮仍然不起作用。谢谢!谢谢,这按要求起作用了。我的问题是在导入之前放置代码块,没有错误!您应该重新排列代码,使其位于Jquery引用脚本标记之后,如下所示$(document).ready(function(){$(document).在(“单击”,“按钮”,function(){alert($(this).attr('id'));//testing functionality});});如果答案有用,至少感谢您的支持(这个答案对我很有用,按钮)然后谈谈编辑查看我最近的编辑-我添加了一个代码段。似乎不起作用。可能是因为脚本在jquery导入之前?这很重要吗?谢谢,这按要求工作。我的问题是将代码块放在导入之前,没有错!查看我最近的编辑-我添加了一个代码段。似乎不起作用。可能是因为脚本在jquery导入之前?这很重要吗?谢谢,这是按要求完成的。我的问题是将代码块放在导入之前,没有错!