I have a drop down navigation menu in which some of the title should not navigate to other page when clicked(these title open a drop down menu when clicked on) while others
I've found another solution to solve this problem. I use jQuery to set the href
-attribute to javascript:;
(not ' ', or the browser will reload the page) if the browser window width is greater than 1'000px. You need to add an ID to your link. Here's what I'm doing:
// get current browser width
var width = $(window).width();
if (width >= 1001) {
// refer link to nothing
$("a#linkID").attr('href', 'javascript:;');
}
Maybe it's useful for you.
Use OnClientClick = "return false;"
You can also just "not" add a url inside the <a>
tag, i do this for menus that are <a>
tag driven with drop downs as well. If there is not drop down then i add the url but if there are drop downs with a <ul> <li>
list i just remove it.
Best solution:
.disabled{filter: alpha(opacity=50);opacity: 0.5;z-index: 1;pointer-events: none;}
Runs perfectly on all browsers
It's worth mentioning that specifically for IE, disabled=disabled
works for anchor tags:
<a href="contact.html" onclick="unleashTheDragon();" disabled="disabled">Contact</a>
IE treats this as an disabled
element and does not trigger click event. However, disabled
is not a valid attribute on an anchor tag. Hence this won't work in other browsers. For them pointer-events:none
is required in the styling.
UPDATE 1: So adding following rule feels like a cross-browser solution to me
UPDATE 2: For further compatibility, because IE will not form styles for anchor tags with disabled='disabled'
, so they will still look active. Thus, a:hover{}
rule and styling is a good idea:
a[disabled="disabled"] {
pointer-events: none; /* this is enough for non-IE browsers */
color: darkgrey; /* IE */
}
/* IE - disable hover effects */
a[disabled="disabled"]:hover {
cursor:default;
color: darkgrey;
text-decoration:none;
}
Working on Chrome, IE11, and IE8.
Of course, above CSS assumes anchor tags are rendered with disabled="disabled"
I faced similar issues:
I faced this issue in a directive, i fixed it adding a as its parent element and making pointer-events:none for that
The above fix did not work for select tag, then i added cursor:text (which was what i wanted) and it worked for me
If a normal cursor is needed you could add cursor:default