1

単純なコード文字列があります。関数がある場所にページが読み込まれたときにデフォルト値を表示したいnumResults()。ある時点numResults()で、新しい値で更新してから、ページをリロードせずに文字列を変更したいと思います。

$('#step1').before('Showing results 1 - ' + numResults());

function numResults(value) {
    var results = 10; // default number

    if (value) {
        return value; // show updated value
    } else {
        return results; // show default
    }
}
4

3 に答える 3

2

これは、knockout.jsの典型的なユースケースです。

実行例:http://jsfiddle.net/55fXu/1/

<div data-bind="text:numResults"/>

<script>
$(function() {
  function AppViewModel() {
    this.numResults = ko.observable(10);
  }

  ko.applyBindings(new AppViewModel());
});
</script>
于 2012-12-10T17:48:42.850 に答える
1

jQuery.Callbacks私はあなたがこれのためにオブジェクトを利用できると思います:

// flags: store latest value, and prevent same callback adding multiple times
var resultNumberChanged = $.Callbacks("memory unique");
resultNumberChanged.fire(10); // init with "default number"

resultNumberChanged.add(function(val) {
    $('#step1').before('Showing results 1 - ' + val); // update each time it changes
}); // will also be fired immediately, as there is the default value already

// then, at any point, e.g. inside the numResult function when there is a parameter
…
    resultNumberChanged.fire(newvalue);
于 2012-12-10T17:43:08.943 に答える
0

まず、elseを開始する前にifタグを閉じます。さて、あなたが何か簡単なことをしようとしているなら、これを試してください:

$(function () {
        $("#myText").val(numResults());

        $("#myButton").click(function(){
            $("#myText").val(numResults("123"));
        });
    });

    function numResults(value) {
        var results = 10; // default number

        if (value) {
            return value; // show updated value
        }
        else {
            return results; // show default
        }
    }
于 2012-12-10T18:04:39.643 に答える