JQuery on(' click')只能运行一次

时间:2016-09-16 10:15:36

标签: javascript jquery ajax

我知道有很多像这样的问题,但仍然无法弄清楚。

SELECT * FROM car_availability as c , car_trip_availability as ct
WHERE c.car_id = ct.car_id 
AND c.car_category_id IN ($car_category_id_list)
AND c.from_date_time >= :from_date_time
AND c.to_date_time <= :to_date_time
AND c.is_booked = :is_booked
AND ct.trip_type_id =:trip_type_id
AND ct.from_location_id =:from_location_id
AND ct.to_location_id = :to_location_id
<div class="message"></div>
<button id="getMessage">Get Quote</button>

问题是$.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1", function(data) { var content = data[0].content + data[0].title; $("#getMessage").on("click", function() { $(".message").html(content); }); }); 只能运行一次,但我想让它在每次单击按钮时都能正常工作。我做错了什么?

2 个答案:

答案 0 :(得分:2)

你似乎只是因为&#34; quotesondesign&#34;给你一个随机引用,var content在产生更多随机引号的能力方面有点神奇。事实并非如此。

on('click')所做的就是获取所提取的单个随机引用并显示它。如果已经显示,它将再次显示,替换第一个,似乎什么也不做。

您需要将$.getJSON调用置于 on('click')内,以便&#34; quotesondesign&#34;第二次打电话来检索另一个报价。

或者,将posts_per_page增加到更高的数字以获得引号选择,并将var content 移到<{em}里面on('click'),替换0用一些合适的随机数(例如var selected = Math.floor(Math.random()*data.length), content = data[selected].content + data[selected].title;

答案 1 :(得分:0)

试试这个:

$("#getMessage").on("click", function() {
    $.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1", function(data) {
        var content = data[0].content + data[0].title;
        $(".message").html(content);
    });
});