[英]how to get NEWLY created select width with JS
我现在把头靠在墙上三个小时。 我有以下代码:
function showpctask() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
var xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("pcactivitytask").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET","showpctask.php"+,true);
xmlhttp.send();
}
会在div(id = pcactivitytask)中打开一个php文件。 该PHP文件建立一个“选择”
我在这里也有此功能:
function setpctaskwidth() {
var maxtaskwidth = 0;
$("div .pcactivitytask").each(function(){
c_width = parseInt($(this).width());
if (c_width > maxtaskwidth) {
maxtaskwidth = c_width;
}
});
alert (maxtaskwidth);
}
这将显示“ pcactivitytask”类的所有元素的最大宽度。 是的,由上一个脚本创建的选择具有该类。 如果我同时调用这两个函数,它将不包括新创建的select .....的宽度。我需要再次运行它“ manuall”。 我需要我的脚本“ onclick”都建立新的选择,并在第二个脚本中找到最大宽度。 谢谢。
XMLhttprequest
异步工作,这意味着它不会按顺序发生。
这就是为什么您具有xmlhttp.onreadystatechange
回调函数的原因,该函数仅在请求完成后才运行
您没有指定如何调用这两个函数,但是我希望看到在onreadystatechange
函数内部对setpctaskwidth()
的onreadystatechange
是这样的:
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("pcactivitytask").innerHTML = xmlhttp.responseText;
setpctaskwidth();
}
};
请注意,如果响应中包含页面中不存在的图像或其他外部资源(字体等),则您得到的尺寸可能会与实际的最终尺寸不同(它将在加载图像之前测量尺寸)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.