更改base中URL字符串的一部分以单击两个按钮的事件

时间:2016-05-10 16:40:01

标签: javascript jquery json

我正在尝试将基本网址字符串的一部分更改为两个不同按钮中的点击。 如果单击第一个,则URL字符串中键的值将为1。如果我单击第二个按钮,则URL字符串中的值将不同。

此URL是.getJSON方法的第一个参数。

我尝试了不同的jQuery方法,例如:

var myString= "one string";
var myUrl="http://theweb.com?"+myString;
$("button_one").click(function(){
           myString="one string";
});
$("button_two").click(function(){
           myString="other string";
});

$.getJSON(myUrl,function(json){...})

但没有结果。单击第二个按钮不会更改URL中的字符串。

5 个答案:

答案 0 :(得分:0)

根据您的代码,甚至在您实际点击任何按钮之前就会调用$ .getJSON。 尝试在事件中使用getJson。

var myString= "one string";
var myUrl="http://theweb.com?"+myString;
$("button_one").click(function(){
           myString="one string";
           $.getJSON(myUrl,function(json){...})
});
$("button_two").click(function(){
           myString="other string";
           $.getJSON(myUrl,function(json){...})
});

答案 1 :(得分:0)

您需要将值重新分配给myUrl并正确回忆$.getJSON,因为它通常最适合制作一个函数(doRequest):

$("button_one").click(function() {
  doRequest("one string");
});
$("button_two").click(function(){
  doRequest("other string");
});

// Do initial request, are you sure you want this?
doRequest("one string");

function doRequest(myString) {
  var myUrl="http://theweb.com?" + myString;
  $.getJSON(myUrl,function(json) {
    // ...
  });
}

答案 2 :(得分:0)

在getJSON调用中使用之前,需要更新“myUrl”。你实际上没有改变任何东西。此外,应该在每个函数中使用局部变量。

$("button_one").click(function(){
           var myUrl="http://theweb.com?" + "one string";
           $.getJSON(myUrl,function(json){...})
});
$("button_two").click(function(){
           var myUrl="http://theweb.com?" + "other string";
           $.getJSON(myUrl,function(json){...})
});    

答案 3 :(得分:0)

这里有几件事。设置myString后,需要将其分配给变量。 你也没有。在button_one和button_two中 这将是班级。 对于你需要的课程.button_one 或者你需要的#button_one

<button class="button_one" href="#">Button One</button>
    <button class="button_two" href="#">Button Two</button>



<script>

    $(window).load(function () {
        var myString= "one string";

        $(".button_one").click(function(){
            myString="one string";
            var myUrl="http://theweb.com?"+myString;
            console.log(myUrl);
        });
        $(".button_two").click(function(){
            myString="other string";
            var myUrl="http://theweb.com?"+myString;
            console.log(myUrl);
        });

      //  $.getJSON(myUrl,function(json){})
    });


</script>

答案 4 :(得分:0)

不要在网址中使用空格。 如果您使用ID来选择按钮,请使用# ex:$("#button_two")作为前缀。 要更改网址的href,您可以使用$(selector).prop('href',value); 在按钮单击中,您正在更新myString,但您永远不会重新评估myUrl。

这是一个有效的例子:

var myUrl = "http://theweb.com?";

$(document).ready(function() {

  $("#button_one").click(function() {
    $("a#myUrl").prop('href', myUrl + "one_string");
    $('span').text($("a#myUrl").attr('href'));
  });
  
  $("#button_two").click(function() {
    $("a#myUrl").prop('href', myUrl + "two_string");
    $('span').text($("a#myUrl").attr('href'));
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<a id="myUrl" href="">My URL</a>
<br />
<span>URL: </span>
<br />
<button id="button_one">Button One</button>
<br />
<button id="button_two">Button Two</button>