Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义变量_Javascript_Jquery_Tipsy - Fatal编程技术网

Javascript 未定义变量

Javascript 未定义变量,javascript,jquery,tipsy,Javascript,Jquery,Tipsy,我正在尝试这段代码来更新tipsy插件的后备功能。 如何在第一个函数之外访问变量a?我可以重写变量来进行更新,对吗 <script type="text/javascript"> $(document).ready(function () { var a ="Login"; $("#login_form").submit(function () { var formdata = $("#login_form").serializeArray();

我正在尝试这段代码来更新tipsy插件的后备功能。 如何在第一个函数之外访问变量a?我可以重写变量来进行更新,对吗

<script type="text/javascript">
$(document).ready(function () {
    var a ="Login";
    $("#login_form").submit(function () {
        var formdata = $("#login_form").serializeArray();
        $.ajax({
            url: "ajax_login.php",
            type: "post",
            dataType: "json",
            data: formdata,
            success: function (data) {
                if (data.livre === 'complete') {
                    var a ="success";
                } else 
                    var a = "Error";
            }
        });
return false;
    });
});
</script>

<script type='text/javascript'>
$(document).ready(function () {
    $('.login_fields input[rel=tipsy]').tipsy({gravity: 'w', trigger: 'manual', fallback: a }); // a is not defined
});
</script>

$(文档).ready(函数(){
var a=“登录”;
$(“#登录表单”)。提交(函数(){
var formdata=$(“#login_form”).serializeArray();
$.ajax({
url:“ajax_login.php”,
类型:“post”,
数据类型:“json”,
数据:formdata,
成功:功能(数据){
如果(data.livre==‘完成’){
var a=“成功”;
}否则
var a=“错误”;
}
});
返回false;
});
});
$(文档).ready(函数(){
$('.login_字段输入[rel=tipsy]').tipsy({gravity:'w',trigger:'manual',fallback:a});//未定义a
});

a
变量移到就绪功能之外:

<script type="text/javascript">
    var a ="Login";
    $(document).ready(function () {

a
变量移到就绪功能之外:

<script type="text/javascript">
    var a ="Login";
    $(document).ready(function () {

你可以让它全球化。这是不是你应该做的取决于

如果它都在docready中运行,那么就没有理由使用全局;您可以从ajax成功的第二个docready运行代码(或者完成,如果它满足您的需要)


很难说;不知道这些片段离现实有多近。

你可以让它全球化。这是不是你应该做的取决于

如果它都在docready中运行,那么就没有理由使用全局;您可以从ajax成功的第二个docready运行代码(或者完成,如果它满足您的需要)


很难说;不知道代码片段与现实有多接近。

要么将第二个document.ready块中的代码移动到第一个document.ready块(这将使
a
变量可由
.tipsy()
调用访问),要么使
a
变量成为全局变量

<script type="text/javascript">
$(document).ready(function () {
    var a ="Login";
    $("#login_form").submit(function () {
        var formdata = $("#login_form").serializeArray();
        $.ajax({
            url: "ajax_login.php",
            type: "post",
            dataType: "json",
            data: formdata,
            success: function (data) {
                if (data.livre === 'complete') {
                    a ="success";
                } else 
                    a = "Error";
            }
        });
return false;
    });
    $('.login_fields input[rel=tipsy]').tipsy({gravity: 'w', trigger: 'manual', fallback: a });

});
</script>

将第二个document.ready块中的代码移动到第一个块(这将使
a
变量可由
.tipsy()
调用访问)或使
a
变量成为全局变量

<script type="text/javascript">
$(document).ready(function () {
    var a ="Login";
    $("#login_form").submit(function () {
        var formdata = $("#login_form").serializeArray();
        $.ajax({
            url: "ajax_login.php",
            type: "post",
            dataType: "json",
            data: formdata,
            success: function (data) {
                if (data.livre === 'complete') {
                    a ="success";
                } else 
                    a = "Error";
            }
        });
return false;
    });
    $('.login_fields input[rel=tipsy]').tipsy({gravity: 'w', trigger: 'manual', fallback: a });

});
</script>
1) 为什么你有2个文件。准备好了吗

2) 您可以使用全局参数或$.data转换数据

3) 对于您的解决方案-声明
var a=“Login”外部或使用自动执行func保留全局变量的作用域。

1)为什么有2个Document.ready

2) 您可以使用全局参数或$.data转换数据


3) 对于您的解决方案-声明
var a=“Login”
out-side或使用自执行func保留全局变量的作用域。

在创建醉酒对象后,如果不修改对象本身,则无法更改其
回退属性

如果
回退
参数是一个字符串,则只要执行
$().tipsy({…})
函数,就会对其进行解释。因此,随后更改变量
a
的值不会更改
回退
参数

我最初认为从
$.fn.tipsy.defaults
对象直接更新
fallback
属性会使其生效,但当创建一个新的
tipsy
对象时,
fallback
属性基本上被复制到其中,因此它将永远存储
fallback
的初始值


一种解决方案是分叉Tipsy项目,并将
fallback
属性更改为接受字符串或
函数()。像这样,可以执行以下操作:
fallback:function(){returna;}

在创建醉酒对象后,如果不修改对象本身,就无法更改其
fallback
属性

如果
回退
参数是一个字符串,则只要执行
$().tipsy({…})
函数,就会对其进行解释。因此,随后更改变量
a
的值不会更改
回退
参数

我最初认为从
$.fn.tipsy.defaults
对象直接更新
fallback
属性会使其生效,但当创建一个新的
tipsy
对象时,
fallback
属性基本上被复制到其中,因此它将永远存储
fallback
的初始值


一种解决方案是分叉Tipsy项目,并将
fallback
属性更改为接受字符串或
函数()。这样就可以执行如下操作:
fallback:function(){returna;}

解决错误,但工具提示不会更新。始终为“登录”,从不更改为成功或错误。AJAX调用是异步的,这意味着它在执行
.tipsy()
调用后执行回调函数。查看我上面的更改,在回调函数中加载tipsy。另一个解决方案是按原样加载tispy,但在回调函数中对其进行更新(我个人不知道该插件,因此我不确定如何进行更新)。解决了错误,但工具提示未更新。始终为“登录”,从不更改为成功或错误。AJAX调用是异步的,这意味着它在执行
.tipsy()
调用后执行回调函数。查看我上面的更改,在回调函数中加载tipsy。另一个解决方案是按原样加载tispy,但在回调函数中对其进行更新(我个人不知道该插件,所以我不确定如何实现)。我将制作一个带有动态内容和渐变的简单css工具提示。保持简单,解决问题。thanksi将制作一个带有动态内容和渐变的简单css工具提示。保持简单,解决问题。谢谢
<script type="text/javascript">
$(document).ready(function () {
    var a ="Login";
    $("#login_form").submit(function () {
        var formdata = $("#login_form").serializeArray();
        $.ajax({
            url: "ajax_login.php",
            type: "post",
            dataType: "json",
            data: formdata,
            success: function (data) {
                if (data.livre === 'complete') {
                    a ="success";
                } else {
                    a = "Error";
                }
                $('.login_fields input[rel=tipsy]').tipsy({gravity: 'w', trigger: 'manual', fallback: a });
            }
        });
return false;
    });
});
</script>