Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于参数更改布尔变量onClick_Javascript_Jquery - Fatal编程技术网

Javascript 基于参数更改布尔变量onClick

Javascript 基于参数更改布尔变量onClick,javascript,jquery,Javascript,Jquery,我正在创建一个页面,通过单击按钮将变量设置为true或false。如果我为每个变量/按钮创建一个函数,这是可行的,但由于最终会有相当多的变量,如果可能,我希望在单个函数中执行此操作: <div> <button type="button" id="colorbutton" class="button red" onClick="manualSelect('Color')">Colors</button> <button type="button"

我正在创建一个页面,通过单击按钮将变量设置为true或false。如果我为每个变量/按钮创建一个函数,这是可行的,但由于最终会有相当多的变量,如果可能,我希望在单个函数中执行此操作:

<div>
  <button type="button" id="colorbutton" class="button red" onClick="manualSelect('Color')">Colors</button>
  <button type="button" id="animalbutton" class="button red" onClick="manualSelect('Animal')">Animals</button>
</div>
我知道这很愚蠢,只是为了树立榜样

以下是完整的脚本:
当然,这是可能的:

var手册={
“颜色”:假,
“动物”:假,
};
$(“按钮”)。在(“单击”,函数(){
变量项=$(此).data(“选择”);
手动[项目]=!手动[项目];
控制台信息(手动);
});

颜色
动物
在AngularJS中

<button ng-click="manual()">Click me!</button>

您可以通过文本访问对象的属性,例如:

flags["animal"] = true;
您也可以通过以下方式访问:

flags.animal = true;
因此,将所有要切换的“变量”放到另一个变量上,例如:

var标志={};
功能切换标志(项目){
标志[项目]=!标志[项目];
console.log(“color:+flags.color”)
console.log(“动物:+flags.animal”)
console.log(标志)
}
切换标志(“测试”)
$(“.button”)。单击(函数(){
toggleFlag($(this).data(“标志”))
});

颜色
动物

鉴于
$('manual'+item)
永远不会等于
false
,除了不能将其设置为
true
false
,我不确定您试图实现什么基于参数将$manualColor或$manualAnimal更改为oposite true/false。这可能很有用,OP没有显示他们在使用Angular。你可以猜到,我的编程技能相当缺乏。棱角分明是我够得着的。不过还是谢谢你,很好。如果我需要根据单击更改按钮类(下面的手动[item]=!手动[item];)基于它是真还是假?假设如果为true,则添加蓝色类,如果为false,则添加橙色类。然后执行
if(手动[item]){$(this).addClass(“蓝色”).removeClass(“橙色”);}否则{$(this).addClass(“橙色”).removeClass(“蓝色”);}
Nice。如果我需要根据单击更改按钮类(下面的flags[item]=!flags[item];)是真还是假?假设如果为true,则添加蓝色类,如果为false,则添加橙色类。
$(this).addClass(标记[项目]?“蓝色”:“橙色”)