1

我正在尝试通过使用函数对此值进行布尔更改。我试过这样:

var itemInStock = false;

$("#button").click(function(){
    itemInStock = true
}
if( itemInStock === false){
    document.write("item is out of stock");
} else{
    document.write("item is in stock");
}

我明白为什么它不起作用,但我找不到解决这个问题的方法!

4

4 回答 4

3

我只能猜到你想要达到的目标。似乎您想在某个时候检查该物品当前是否有库存。由于您无法知道点击何时发生,因此一种解决方案可能是定期检查该值。

(function () {
    var itemInStock = false;

    $("#button").click(function () {
        itemInStock = true
    });

    window.setInterval(function () {

        if (itemInStock === false) {
            console.log("item is out of stock");
        } else {
            console.log("item is in stock");
        }

    }, 500);
})()

http://jsfiddle.net/Ttu5N/

告诉我,如果我的猜测有误。

更新:更简单的方法

$(function () {
    var $state = $('#state');


  $state.text('item is out of stock');

    $("#button").click(function () {
        $state.text('item is in stock');
    });


})

<button id="button">click me</button>
<div id="state"></div>

http://jsfiddle.net/Wb3ET/ 直接点击即可。

于 2013-01-15T20:25:40.323 回答
0

您不能在加载后使用 document.write 并且也没有必要在单击按钮时而不是之前更改布尔值

创建一个 id="status" 的跨度并拥有

var itemInStock = false;
$(function() {  
  $("#button").click(function(){
    itemInStock = true;

    $("#status").html("item is in stock":
  }

  $("#status").html(itemInStock?"item is in stock":"item is out ofstock");
});
于 2013-01-15T20:23:25.077 回答
0
// HTML
<div id="status">item is out of stock by default</div>

// JS
var itemInStock = false;

$("#button").click(function(){
    itemInStock = true;
}, changeStatus());

function changeStatus(){
    if( itemInStock === false){
         $('#status').html("item is out of stock");
    } else{
         $('#status').html("item is in stock");
    }
}
于 2013-01-15T20:30:04.203 回答
0

因为 itemInStock 在单击按钮之前不会更改...

于 2013-01-15T20:21:47.807 回答