如何使用javascript切换某些jquery效果
我希望能够使用javascript在jquery中切换某些效果,这段代码正确吗?最简单的解决方案是什么 注意:不要说“use.toggle()”,它目前有一个bug,导致它将段落最小化 HTML如何使用javascript切换某些jquery效果,javascript,jquery,html,toggle,effects,Javascript,Jquery,Html,Toggle,Effects,我希望能够使用javascript在jquery中切换某些效果,这段代码正确吗?最简单的解决方案是什么 注意:不要说“use.toggle()”,它目前有一个bug,导致它将段落最小化 HTML <!--This first line calls in jquery--> <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script> <p&g
<!--This first line calls in jquery-->
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<p>Hello all</p>
JQUERY/JAVASCRIPT
var num = 0;
$(document).ready(function () {
$("p").click(
if (num == 0) {
var num == 1;
} else {
var num == 0;);
$("p").click(function () {
if (num == 1) {
$(this).animate({
color: "black",
backgroundColor: "white",
fontFamily: "arial",
fontSize: "20px",
fontFamily: "serif"
}, 500);
} else {
$(this).animate({
color: "red",
backgroundColor: "lightblue",
borderRadius: "5px",
height: "50px",
}, 500);
});
});
感谢大家抽出时间,我非常感谢。最简单的方法可能是使用数据属性作为标志,并在对象中使用ternary,如下所示
$('p').on('click', function() {
var flag = $(this).data('flag');
$(this).animate({
color : flag ? "red" : "black",
backgroundColor : flag ? "#ADD8E6" : "white",
fontSize : flag ? "20px" : "10px",
borderRadius : flag ? "5px" : "0px"
});
$(this).data('flag', !flag);
});
至于代码不起作用的原因,您只是在第一次单击处理程序中使用了错误的运算符,并且没有定义函数,正确的代码应该是:
var num=0;
$(document).ready(function () {
$("p").click(function(){
if (num == 0) {
num = 1;
} else {
num = 0;
}
});
$("p").click(function () {
if (num == 1) {
$(this).animate({
color: "black",
backgroundColor: "white",
fontFamily: "arial",
fontSize: "20px",
fontFamily: "serif"
}, 500);
} else {
$(this).animate({
color: "red",
backgroundColor: "lightblue",
borderRadius: "5px",
height: "50px",
fontSize: "12px",
}, 500);
}
});
});
然而,我更喜欢@adeneo的解决方案,因为它更优雅,更不冗长这是一个很好的答案!但我也想知道为什么我的代码不起作用@adeneo您的代码无法工作,因为它充满了语法错误!您不能只写
$('p')。请单击(如果(此)按钮)
抱歉,那里有一些语法错误,没有测试,现在已修复。但是,由于num变量是全局变量,因此只有当页面中只有一个“p”元素时,此代码才起作用。如果你有多个“p”元素,@adeneo的解决方案就是最好的选择。(注意:vanialla Jquery无法制作彩色动画,因此使用“颜色”和“背景色”将不起作用。但是有一个插件可以实现这一点:)如果你仔细查看我的html,我已经链接了Jquery ui,它允许我制作彩色动画。抱歉,没有看到这一点
var num=0;
$(document).ready(function () {
$("p").click(function(){
if (num == 0) {
num = 1;
} else {
num = 0;
}
});
$("p").click(function () {
if (num == 1) {
$(this).animate({
color: "black",
backgroundColor: "white",
fontFamily: "arial",
fontSize: "20px",
fontFamily: "serif"
}, 500);
} else {
$(this).animate({
color: "red",
backgroundColor: "lightblue",
borderRadius: "5px",
height: "50px",
fontSize: "12px",
}, 500);
}
});
});