jquery点击需要两次才能发射角度2

时间:2017-01-17 11:56:05

标签: jquery angular

我正在尝试从列表中突出显示所选的li。我在角度2中使用jquery。有时需要2次才能触发事件并改变颜色

这是我正在使用的jquery

function highlight(){

var selector = 'li';

$(selector).on('click', function(){
    $(selector).removeClass('active');
    $(this).addClass('active');
});
}

我的部分内容

<li id="auth-auth" (click)="linkedPressed($event)"><img src="app/resources/i_arrow_{{ showAuthPic }}.png" id="auth-auth" ><img src="app/resources/i_acordian_folder_closed_page.png"  class="myimage" id="auth-auth" />Authorization & Authentication</li>
                <ol *ngIf="showAuth">
                    <li id="radius" class = "li-padding" (click)="linkedPressed($event)"><img src="app/resources/i_acordian_page.png" class="myimage" id="radius"/>RADIUS</li>
                    <li id="authentication" class = "li-padding" (click)="linkedPressed($event)"><img src="app/resources/i_acordian_page.png" class="myimage" id="authentication" />Authentication</li>
                </ol>

在LinkedPressed函数中,我调用了高亮显示

我用

解决了这个问题
function highlight(which){

    var selector = "#" + which;
     $("li").removeClass('active');
      $(selector).addClass('active');

}

1 个答案:

答案 0 :(得分:0)

highlight()调用函数linkedPressed()。只有在单击li时才会附加jQuery事件处理程序,因此在第二次单击时它会起作用。每次点击时,注意也会附加另一个事件处理程序。

在页面/视图加载上直接绑定事件处理程序。