Как узнать, какой тег привязки нажимается и получить идентификатор в 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>