jQuery 运行 同时加载页面
jQuery running at the same time when page loading
我需要你的帮助。我有一个 jquery 代码,它在我第一次加载页面后运行良好,作为第二步检查复选框。在后台函数 updateSg(opts) 中调用 submit.php 结果 Json.
但我想解决打开页面时,checkbox input标签从URL获取checked值,checkbox被选中但jquery代码不是[=26] =].我必须取消选中并再次检查代码 运行ning.
你能帮我看看代码是和页面加载一起执行的吗?
谢谢,
姿态
<div id="result"></div>
<div id="filter">
<h2>Filter</h2>
<div>
<input type="checkbox" id="sg" name="sg" checked>
<label for="sg">Something</label>
</div>
</div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
var getsg = "something";
function makeTable(data){
var tbl_body = "";
$.each(data, function(k,v) {
tbl_body += getsg;
})
return tbl_body;
}
function getSgFilterOptions(){
var opts = [];
$checkboxes.each(function(){
if(this.checked){
opts.push(this.name);
}
});
return opts;
}
function updateSg(opts){
$.ajax({
type: "POST",
url: "submit.php",
dataType : 'json',
cache: false,
data: {filterOpts: opts},
success: function(records){
$('div#result').html(makeTable(records));
}
});
}
var $checkboxes = $("input:checkbox");
$checkboxes.on("change", function(){
var opts = getSgFilterOptions();
updateSg(opts);
});
updateSg();
</script>
您应该首先检查复选框是否被选中。
接下来,当您的页面加载时,您的 updateSg()
函数不为 ajax 提供 postData(因此 filterOpts 为空)。
试试这个:
<script>
var getsg = "something";
var $checkboxes = $("input:checkbox");
function makeTable(data){
var tbl_body = "";
$.each(data, function(k,v) {
tbl_body += getsg;
});
return tbl_body;
}
function callAjax(opts){
$.ajax({
type: "POST",
url: "submit.php",
dataType : 'json',
cache: false,
data: {filterOpts: opts},
success: function(records){
$('div#result').html(makeTable(records));
}
});
}
$checkboxes.on("change", function(){
getSgFilterOptions();
});
function getSgFilterOptions(){
if($checkboxes.length){
var opts = [];
$checkboxes.each(function(){
if(this.checked){
opts.push(this.name);
}
});
callAjax(opts);
}
}
getSgFilterOptions();
</script>
我需要你的帮助。我有一个 jquery 代码,它在我第一次加载页面后运行良好,作为第二步检查复选框。在后台函数 updateSg(opts) 中调用 submit.php 结果 Json.
但我想解决打开页面时,checkbox input标签从URL获取checked值,checkbox被选中但jquery代码不是[=26] =].我必须取消选中并再次检查代码 运行ning.
你能帮我看看代码是和页面加载一起执行的吗?
谢谢, 姿态
<div id="result"></div>
<div id="filter">
<h2>Filter</h2>
<div>
<input type="checkbox" id="sg" name="sg" checked>
<label for="sg">Something</label>
</div>
</div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
var getsg = "something";
function makeTable(data){
var tbl_body = "";
$.each(data, function(k,v) {
tbl_body += getsg;
})
return tbl_body;
}
function getSgFilterOptions(){
var opts = [];
$checkboxes.each(function(){
if(this.checked){
opts.push(this.name);
}
});
return opts;
}
function updateSg(opts){
$.ajax({
type: "POST",
url: "submit.php",
dataType : 'json',
cache: false,
data: {filterOpts: opts},
success: function(records){
$('div#result').html(makeTable(records));
}
});
}
var $checkboxes = $("input:checkbox");
$checkboxes.on("change", function(){
var opts = getSgFilterOptions();
updateSg(opts);
});
updateSg();
</script>
您应该首先检查复选框是否被选中。
接下来,当您的页面加载时,您的 updateSg()
函数不为 ajax 提供 postData(因此 filterOpts 为空)。
试试这个:
<script>
var getsg = "something";
var $checkboxes = $("input:checkbox");
function makeTable(data){
var tbl_body = "";
$.each(data, function(k,v) {
tbl_body += getsg;
});
return tbl_body;
}
function callAjax(opts){
$.ajax({
type: "POST",
url: "submit.php",
dataType : 'json',
cache: false,
data: {filterOpts: opts},
success: function(records){
$('div#result').html(makeTable(records));
}
});
}
$checkboxes.on("change", function(){
getSgFilterOptions();
});
function getSgFilterOptions(){
if($checkboxes.length){
var opts = [];
$checkboxes.each(function(){
if(this.checked){
opts.push(this.name);
}
});
callAjax(opts);
}
}
getSgFilterOptions();
</script>