Javascript 如果单击jquery
请帮帮我!我不知道为什么我的代码不起作用。。。 在事件处理程序中定义变量还有其他方法吗?还是以某种方式归还Javascript 如果单击jquery,javascript,jquery,Javascript,Jquery,请帮帮我!我不知道为什么我的代码不起作用。。。 在事件处理程序中定义变量还有其他方法吗?还是以某种方式归还 var $test; $('#click1').click(function() { $test = 1; }); $('#click2').click(function() { $test = 2; }); $('#click3').click(function() { $test = 3; }); if ($test == 1) { $right.fadeOut('2
var $test;
$('#click1').click(function() {
$test = 1;
});
$('#click2').click(function() {
$test = 2;
});
$('#click3').click(function() {
$test = 3;
});
if ($test == 1) {
$right.fadeOut('2000');
$('#click1').css({
"color": "#6B1E1E",
"font-size": "100%",
"text-shadow": "0px 0px 2px green"
});
$animWebs.animate({
top: 170,
left: 800,
width: 400,
height: 300,
backgroundColor: 'white',
borderRadius: 6
}, 4000);
$('#img1').animate({
opacity: 1
}, 4000);
$('#click1').removeClass('click1');
} else if ($test == 2) {
$('#click2').css({
"color": "#6B1E1E",
"font-size": "100%",
"text-shadow": "0px 0px 2px green"
});
$right.remove();
$simpWebs.animate({
top: 170,
left: 300,
width: 400,
height: 300,
backgroundColor: 'white',
borderRadius: 6
}, 3000);
$('#img2').animate({
opacity: 1
}, 3000);
$('#click2').removeClass('click1');
} else if ($test == 3) {
$('#click3').css({
"color": "#6B1E1E",
"font-size": "100%",
"text-shadow": "0px 0px 2px green"
});
$right.remove();
$contact.animate({
top: 500,
left: 500,
width: 400,
height: 100,
backgroundColor: 'white',
borderRadius: 6
}, 3000);
$('#img3').animate({
opacity: 1
}, 3000);
$('#click3').removeClass('click1');
} else {
$test = null;
};
if-else语句可以工作,但我的click事件似乎没有对变量进行任何更改,这可能是由于事件序列造成的。请参阅下面的建议代码或代码的重新拆分
$(document).ready(function(){
$('#click1').click(function(){
$right.fadeOut('2000');
$(this).css(/* CSS Stuff */);
});
$('#click2').click(function(){
/* Your Functionality */
});
});
$(document).ready(function(){
var test;
$('#click1').click(function(){
test = 1;
evaluateTest(test);
});
$('#click2').click(function(){
test = 2;
evaluateTest(test);
});
$('#click3').click(function(){
test = 3;
evaluateTest(test);
});
function evaluateTest(testVal){
alert(testVal);
// INSERT YOUR IF STATEMENT HERE AND REMOVE ALERT ABOVE
}
});
从我所能理解的,可以归结为事件的顺序。请参阅下面的建议代码或代码的重新拆分
$(document).ready(function(){
var test;
$('#click1').click(function(){
test = 1;
evaluateTest(test);
});
$('#click2').click(function(){
test = 2;
evaluateTest(test);
});
$('#click3').click(function(){
test = 3;
evaluateTest(test);
});
function evaluateTest(testVal){
alert(testVal);
// INSERT YOUR IF STATEMENT HERE AND REMOVE ALERT ABOVE
}
});
如果动态生成了
click2
click3
的html,则应使用委托事件绑定.on()
在设置$test
后在单击事件时调用的函数中对if..else if..else if..else
进行快速包装谢谢!!!天哪,我忘了!!!是的,那有帮助!我将它包装在一个函数中,并在单击事件处理程序中调用它!!!!此外,您还可以使用开关…case
使代码更简洁。如果它是一个简单的变量,为什么要在前面使用$?和控制台,记录测试值以查看您应该使用委托事件绑定的值。如果动态生成了click2
click3
的html,请在设置$test
后在单击事件时调用的函数中重新包装if..else if..else
,谢谢!!!天哪,我忘了!!!是的,那有帮助!我将它包装在一个函数中,并在单击事件处理程序中调用它!!!!此外,您还可以使用开关…case
使代码更简洁。如果它是一个简单的变量,为什么要在前面使用$?和控制台,记录测试值以查看值