这是功能的一部分:
var editid;
$("div.editable").click(function(e) {
if ($currentInput == null)
return;
var css = GetCssProperties();
$(this).css(css);
editid = $(this).attr("id");
$currentInput = null;
$("label").html("");
});
我认为问题出在这里。如果需要,我会发布整件事。
基本上,第一次存储var editid时,它是一个未定义的值。
该变量被发送到PHP页面,我让它在页面上回显结果。
没有失败,第一次存储其值onclick是“未定义”,并且每隔一次存储适当的值。
以下是整个事情:
<script>
$(document).ready(function(){
var $currentInput = null;
$("#border_button, #background_color_button, #opacity_button").click(function() {
if ($currentInput == null) {
$currentInput = $(this).prev();
$("label").html($currentInput.attr("id"));
}
});
var editid;
$("div.editable").click(function(e) {
if ($currentInput == null)
return;
var css = GetCssProperties();
$(this).css(css);
editid = $(this).attr("id");
$currentInput = null;
$("label").html("");
});
function GetCssProperties() {
if ($currentInput == null) return null;
var value = $currentInput.val();
if ($currentInput.attr("id") == "background-color") {
ajaxStyle(value, 1, editid)
return {
"background-color": value
}
}
if ($currentInput.attr("id") == "border-radius") {
ajaxStyle(value, 2, editid)
return {
"border-radius": value
}
}
if ($currentInput.attr("id") == "opacity") {
ajaxStyle(value, 3, editid)
return {
"opacity": value
}
}
}
});
答案 0 :(得分:0)
在设置变量值之前调用GetCssProperties()。 如果您尝试在GetCssProperties()内部访问变量,那么第一次变量将是未定义的,因为您已全局声明它,但它仍然没有值。
将订单更改为:
editid = $(this).attr("id");
var css = GetCssProperties();