Как узнать, какой тег привязки нажимается и получить идентификатор в CanJs?

Я динамически сгенерировал тег привязки в ejs.

<div style="position: absolute" class="template-box">
    <!--<a  href="#!template-detail" class="b2bdist">B2B Distributor</a>-->
    <% for(var i = 0; i < this.length; i++) { %>
    <a href="#!template-detail" id="<%= this[i][0].id%>"> <%= this[i][1].name %> </a> <br>
    <% } %>
</div>

Href одинаков для каждого тега привязки. Теперь, когда щелкнет любой якорь, он попадет в следующий код:

case "template-detail":
           var template_id;
           // here i want to get the the anchors id which is clicked
           $("#template-detail").show();
           break;

Здесь, чтобы заметить, что мой href такой же, и в любой клик я пойду на тот же контроллер в canJs. Когда щелкнет href, он перейдет к контроллеру маршрутизатора, и контроллер маршрутизатора вызовет эту функцию в моем mainAppController. так что это изменилось на mainAppController. Так что я не могу использовать this.id что-то.

Изменить: я использовал код ниже в моем JS, но не сработал. Это касается случая использования href напрямую из-за используемого мной контроллера маршрутизатора.

   $('a').click(function(){
                console.log(this.id);
            })

Как получить идентификатор привязанного тега?

Изменить: извините всех. Мне нужно это в CanJs.

4 ответа

Добавить атрибут класса во все <a>,
пример HTML:

<a href="#" class="myclass" id="id1">Text one</a>
<a href="#" class="myclass" id="id2">Text two</a>
<a href="#" class="myclass" id="id3">Text three</a>

пример JS:

$('a.myclass').click(function(){
    alert( $(this).attr('id') );
});

У вас есть и объект события? если так, вы можете получить доступ event.target.id

Вы можете сделать это с помощью Jquery. Решение есть;

    $(function(){
//document ready
        $('a').click(function(){
          alert($(this).attr('id'));
        });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="firstone">First Link</a>
<a href="#" id="secondone">Second Link</a>
<a href="#" id="thirdone">Third Link</a>

Имейте атрибут "имя" в теге привязки и имейте обработчик щелчка, основанный на этом

$('a[name="uniqueid"]').click(function(){
  alert(this.id);
});

 <a href="#" name="uniqueid" id="id1">Text one</a>
<a href="#" name="uniqueid" id="id2">Text two</a>
<a href="#" name="uniqueid" id="id3">Text three</a>
Другие вопросы по тегам