我有一个简单的代码串。我想在加载页面时显示默认值,其中函数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
}
}
答案 0 :(得分:2)
这是knockout.js的一个典型用例。
运行示例<div data-bind="text:numResults"/>
<script>
$(function() {
function AppViewModel() {
this.numResults = ko.observable(10);
}
ko.applyBindings(new AppViewModel());
});
</script>
答案 1 :(得分:1)
我认为您可以使用jQuery.Callbacks
object:
// 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);
答案 2 :(得分: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
}
}