Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
Jquery 使用angularjs中的ng单击从全部删除并将类添加到选定项_Jquery_Angularjs - Fatal编程技术网

Jquery 使用angularjs中的ng单击从全部删除并将类添加到选定项

Jquery 使用angularjs中的ng单击从全部删除并将类添加到选定项,jquery,angularjs,Jquery,Angularjs,我有一个事件,当我单击文本div1时,例如将以粗体显示,并从另一个选中的文本中删除粗体显示,我尝试使用addClass,但它不起作用。我如何解决这个问题 HTML: <div id='1_1' ng-click="addClassToSelected($event)">div1</div> <div id='1_2' ng-click="addClassToSelected($event)">div1</div> <div id='1_3'

我有一个事件,当我单击文本div1时,例如将以粗体显示,并从另一个选中的文本中删除粗体显示,我尝试使用
addClass
,但它不起作用。我如何解决这个问题

HTML:

<div id='1_1' ng-click="addClassToSelected($event)">div1</div>
<div id='1_2' ng-click="addClassToSelected($event)">div1</div>
<div id='1_3' ng-click="addClassToSelected($event)">div1</div>
<div id='1_4' ng-click="addClassToSelected($event)">div1</div>
<div id='1_5' ng-click="addClassToSelected($event)">div1</div>
<div id='1_6' ng-click="addClassToSelected($event)">div1</div>
<div id='1_7' ng-click="addClassToSelected($event)">div1</div>
$scope.addClassSelected = function(event){
            var id =event.target.id ;
            $('#'+id).addClass("bold-selected");
        };
.bold-selected {
    font-weight: bold;
}
CSS:

<div id='1_1' ng-click="addClassToSelected($event)">div1</div>
<div id='1_2' ng-click="addClassToSelected($event)">div1</div>
<div id='1_3' ng-click="addClassToSelected($event)">div1</div>
<div id='1_4' ng-click="addClassToSelected($event)">div1</div>
<div id='1_5' ng-click="addClassToSelected($event)">div1</div>
<div id='1_6' ng-click="addClassToSelected($event)">div1</div>
<div id='1_7' ng-click="addClassToSelected($event)">div1</div>
$scope.addClassSelected = function(event){
            var id =event.target.id ;
            $('#'+id).addClass("bold-selected");
        };
.bold-selected {
    font-weight: bold;
}

在使用angular时,您确实应该了解如何摆脱jquery。从这个话题开始:

这是你问题的答案。首先,如果dom是重复的,那么它应该是这样的:

<div 
    data-ng-class="{
        'bold-selected': option.id == selectedId
       }"
    data-ng-repeat="option in data" 
    data-ng-click="addClassToSelected(option.id)"
    id="1_{{ data.id }}">
    div1
</div>
以下是最终版本的JSFIDLE:

答案

<span id='1' ng-class='{"myclass":tog==1}' ng-click='tog=1'>span 1</span>
<span id='2' ng-class='{"myclass":tog==2}' ng-click='tog=2'>span 2</span>
span 1
跨度2

你能添加一个JSFIDLE让我们试试吗?你是用
ng repeat
渲染这个
div
吗?你应该使用
ng repeat
然后angular会让你的生活更轻松,我只想添加一个类到选中的no ng repeat,这只是我的案例选项中的一个例子。id是div#id它自己为什么在div上有#id开始呢?data ng class=“{'bold selected':myDivId==selectedId}”我在myDivId中做了什么?你让我的生活变得如此艰难,你应该添加一些关于这是做什么以及它解决问题的原因的解释。我添加了一个jsfiddle链接