Javascript 未定义变量
我正在尝试这段代码来更新tipsy插件的后备功能。 如何在第一个函数之外访问变量a?我可以重写变量来进行更新,对吗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();
<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>