$(document).ready(function () {
$('.poga').css('cursor','pointer');
$("#poga1").click(function() {
var n= "poga1";
alert ("pēc piereģistrē " + n);
});
$("#poga2").click(function() {
var n= "poga2";
alert ("pēc piereģistrē " + n);
});
$(".poga").click(function(){
$(".poga").animate({borderBottomWidth:'1'});
$(this).animate({borderBottomWidth:'0'});
alert ("n ir vienāds ar " + n);
switch(n)
{
case poga1:
$("#ChangeContent").html("Pirmā poga nospiesta.");
break;
case poga2:
$("#ChangeContent").html("Otrā poga nospiesta.");
break;
default:
$("#ChangeContent").html("Trešā vai ceturtā poga nospiesta.");
}
return false;
});
});
所以,我有这个javascript函数,应该在按下按钮后动态更改文本。 " POGA"用我的语言表示按钮。由于我是jquery的初学者,我试图保持简单。
$("#poga1").click(function() {
var n= "poga1";
alert ("pēc piereģistrē " + n);
});
$("#poga2").click(function() {
var n= "poga2";
alert ("pēc piereģistrē " + n);
});
当点击按钮1时,使n等于" poga1",当点击按钮2时,使n等于" poga2"
$(".poga").click(function(){
$(".poga").animate({borderBottomWidth:'1'});
$(this).animate({borderBottomWidth:'0'});
alert ("n ir vienāds ar " + n);
switch(n)
{
case poga1:
$("#ChangeContent").html("Pirmā poga nospiesta.");
break;
case poga2:
$("#ChangeContent").html("Otrā poga nospiesta.");
break;
default:
$("#ChangeContent").html("Trešā vai ceturtā poga nospiesta.");
}
当点击任何按钮(所有按钮都有此类)时,动画一点并更改名为" ChangeContent"的div的内容。
出于某种原因,我甚至没有在最后一个函数中得到警报,虽然在我添加了注册n的前两个函数之前,最后一个函数正在工作。
我的问题是,当我点击某个特定课程时,最后一个应该起作用的功能为什么不起作用?
答案 0 :(得分:3)
您面临的问题是变量范围。您在点击功能中声明n
,因此它们不存在于其外部。看看这段代码......
var n;
$(document).ready(function () {
$('.poga').css('cursor','pointer');
$("#poga1").click(function() {
n = "poga1";
alert ("pec pieregistre " + n);
});
$("#poga2").click(function() {
n = "poga2";
alert ("pec pieregistre " + n);
});
$(".poga").click(function(){
$(".poga").animate({borderBottomWidth:'1'});
$(this).animate({borderBottomWidth:'0'});
alert ("n ir vienads ar " + n);
switch(n)
{
case "poga1":
$("#ChangeContent").html("Pirma poga nospiesta.");
break;
case "poga2":
$("#ChangeContent").html("Otra poga nospiesta.");
break;
default:
$("#ChangeContent").html("Treša vai ceturta poga nospiesta.");
}
return false;
});
});
其中,n
在click函数之外声明,因此您可以为其赋值,并且它将在其他函数中保留。
修改强>
我在这里更新了你的jsfiddle示例......
答案 1 :(得分:0)
在您的案例陈述中,您将针对名为poga1
和poga2
的变量的值而不是字符串值进行测试。在值周围添加引号,以便
switch(n)
{
case 'poga1':
$("#ChangeContent").html("Pirmā poga nospiesta.");
break;
case 'poga2':
$("#ChangeContent").html("Otrā poga nospiesta.");
break;
default:
$("#ChangeContent").html("Trešā vai ceturtā poga nospiesta.");
}