jQuery 事件中的三元运算符
Ternary operator in jQuery event
我想要一个按钮根据变量的值触发不同的功能,但三元运算符似乎不适用于 jQuery 事件触发器。
var color = "blue";
$(document).ready(function(){
$('#bot').on('click', ((color==="blue") ? vlu : red));
});
function vlu(event){
alert("Because the sky is blue...");
color = "red";
}
function red(event){
alert("Over the blood-red river.");
}
有办法吗?非常感谢。
你需要把它包装成一个闭包,类似于
(注意,我没有调试你的代码,只是在需要的地方添加了一个闭包)
var color = "blue";
$(document).ready(function() {
$('#bot').on('click', function(e) {
return ((color === "blue") ? vlu(e) : red(e)));
}
});
function vlu(event) {
alert("Because the sky is blue...");
color = "red";
}
function red(event) {
alert("Over the blood-red river.");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您需要使用闭包
$('#bot').on('click', ( function() {
if (color==="blue") vlu();
else red();
);
您可以使用三元运算符,但意义不大。似乎很奇怪你只是没有把逻辑放在方法中来开始。
我想要一个按钮根据变量的值触发不同的功能,但三元运算符似乎不适用于 jQuery 事件触发器。
var color = "blue";
$(document).ready(function(){
$('#bot').on('click', ((color==="blue") ? vlu : red));
});
function vlu(event){
alert("Because the sky is blue...");
color = "red";
}
function red(event){
alert("Over the blood-red river.");
}
有办法吗?非常感谢。
你需要把它包装成一个闭包,类似于
(注意,我没有调试你的代码,只是在需要的地方添加了一个闭包)
var color = "blue";
$(document).ready(function() {
$('#bot').on('click', function(e) {
return ((color === "blue") ? vlu(e) : red(e)));
}
});
function vlu(event) {
alert("Because the sky is blue...");
color = "red";
}
function red(event) {
alert("Over the blood-red river.");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您需要使用闭包
$('#bot').on('click', ( function() {
if (color==="blue") vlu();
else red();
);
您可以使用三元运算符,但意义不大。似乎很奇怪你只是没有把逻辑放在方法中来开始。