存储第一个时间变量它是Undefined,每隔一次它有效吗?使用Jquery,Javascript,Ajax

时间:2011-04-23 00:06:25

标签: javascript jquery ajax javascript-events

这是功能的一部分:

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
        }
    }
}

});

1 个答案:

答案 0 :(得分:0)

在设置变量值之前调用GetCssProperties()。 如果您尝试在GetCssProperties()内部访问变量,那么第一次变量将是未定义的,因为您已全局声明它,但它仍然没有值。

将订单更改为:

 editid = $(this).attr("id");
 var css = GetCssProperties();