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

あなたが達成しようとしていることは推測できます。アイテムが現在在庫があるかどうか、ある時点で確認したいようです。クリックがいつ発生するかわからないため、1 つの解決策として定期的に値を確認することができます。

(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

ボタンがクリックされるまで itemInStock は変更されないため...

于 2013-01-15T20:21:47.807 に答える
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 に答える