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();
);

您可以使用三元运算符,但意义不大。似乎很奇怪你只是没有把逻辑放在方法中来开始。