简体   繁体   English

如何使用功能在jQuery中使用onload和onclick调用不同的ajax调用

[英]How to call different ajax call with onload and onclick in jquery using fuction

I am using a simple ajax call on load and onclick,I am using function for it.Here my ajax call url is different onload and onclick,I have used function and different parameter but its still showing previous json using onclick. 我在加载和onclick上使用一个简单的ajax调用,为此使用函数。这里我的ajax调用url是不同的onload和onclick,我使用过函数和不同的参数,但使用onclick仍显示以前的json。 Below is my code, Updated in plunker https://plnkr.co/edit/YOeklbX5shZCnHVRktyK?p=preview 以下是我的代码,已在plunker中更新:https: //plnkr.co/edit/YOeklbX5shZCnHVRktyK p = preview

html html

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="script.js"></script>
<div id="critical">
 <span id="name1"></span> : <span id="value1"></span>
 </div>
 <div id="major">
 <span id="name2"></span> : <span id="value2"></span>
 </div>
 <div id="minor">
 <span id="name3"></span> : <span id="value3"></span>
 </div>
<button>click</button>

javascript javascript

$(document).ready(function(){
$.fn.reload_cart = function(){ 
    $.ajax({
        type: "GET",
        url: "1.json",
        success: function(result) {
            $("#name1").text(result.critical[0].name);
            $("#value1").text(result.critical[0].value);

            $("#name2").text(result.major[0].name);
            $("#value2").text(result.major[0].value);

            $("#name3").text(result.minor[0].name);
            $("#value3").text(result.minor[0].value);
        }
    });
  }
 $.fn.reload_cart(); 
    $("button").click(function(){
        var url2;
        $.fn.reload_cart(url2); 
        url2: "2.json";
    });
});

1.json 1.json

{
    "critical": [{
        "name": "critical",
        "value": "50"
    }],
    "major": [{
        "name": "major",
        "value": "40"
    }],
    "minor": [{
        "name": "minor",
        "value": "20"
    }]
}

2.json 2.json

{
    "critical": [{
        "name": "criticalnew",
        "value": "53"
    }],
    "major": [{
        "name": "majornew",
        "value": "43"
    }],
    "minor": [{
        "name": "minornew",
        "value": "23"
    }]
}

You need to make your reload_cart function accept a parameter url . 您需要使您的reload_cart函数接受参数url

 $(document).ready(function() { $.fn.reload_cart = function(url) { $.ajax({ type: "GET", url: url, success: function(result) { $("#name1").text(result.critical[0].name); $("#value1").text(result.critical[0].value); $("#name2").text(result.major[0].name); $("#value2").text(result.major[0].value); $("#name3").text(result.minor[0].name); $("#value3").text(result.minor[0].value); } }); } $.fn.reload_cart("1.json"); $("button").click(function() { $.fn.reload_cart("2.json"); }); }); 

You need to pass the json file name in reload_cart() function and check if file name is passed then read from this file(1.json) else read from another file(2.json). 您需要在reload_cart()函数中传递json文件名,并检查是否传递了文件名,然后从此文件(1.json)读取,否则从另一个文件(2.json)读取。 Please your javascript code to following: 请您的javascript代码执行以下操作:

$(document).ready(function(){
$.fn.reload_cart = function(url){
  if(!url){
     url = "1.json"
  }
    $.ajax({
        type: "GET",
        url: url,
        success: function(result) {
            $("#name1").text(result.critical[0].name);
            $("#value1").text(result.critical[0].value);

            $("#name2").text(result.major[0].name);
            $("#value2").text(result.major[0].value);

            $("#name3").text(result.minor[0].name);
            $("#value3").text(result.minor[0].value);
        }
    });
  }
 $.fn.reload_cart(); 
    $("button").click(function(){
        var url2 = "2.json";
        $.fn.reload_cart(url2);
    });
});

I have updated your Plunker 我已经更新了您的Plunker

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM