У меня есть меню ASP.NET, которое генерирует много тегов привязки при визуализации.
Мои требования были
- , чтобы предотвратить обратную передачу, если href или тег привязки равен "" или "#".
- чтобы курсор не показывал руку
Сначала я проверил разметку одного из сгенерированных тегов привязки
<a href="#"
class="popout level1 static"
tabindex="-1"
onclick="__doPostBack('ctl00$NavigationMenu','Unternehmen')">
Company
</a>
Я увидел уже привязанныйщелкните событие и написал быстрый фрагмент jquery.
$(document).ready(function () {
$(".menu a").each(function () {
var anchor = $(this);
var url = (anchor.attr('href').length == 0) ? "" : anchor.attr('href').trim();
if (url == "" || url == "#") {
//unbind the __dopostback
anchor.unbind('click');
anchor.bind('click',function (e) {
e.preventDefault();
});
anchor.css("cursor", "default");
}
});
});
Когда я наведусь на пустую ссылку, курсор будет показывать ссылку по умолчанию вместо руки, что означает, что якорь распознается.Но когда я щелкнул привязку, произошла обратная передача!
Попытка замены anchor.unbind('click');
на anchor.kill('click');
Попытка замены e.preventDefault();
добавлением e.stopPropogation
и даже return false;
Попытка замены anchor.bind('click', function(e){
с anchor.click(function(e) {
Кажется, ничего не работает.Что может быть не так с моим кодом?