Hier ist eine robustere Routine, um das Standardverhalten und die Ereignisblasenbildung in allen Browsern abzuschalten:
// Prevents event bubble up or any usage after this is called.
eventCancel = function (e)
{
if (!e)
if (window.event) e = window.event;
else return;
if (e.cancelBubble != null) e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
if (e.preventDefault) e.preventDefault();
if (window.event) e.returnValue = false;
if (e.cancel != null) e.cancel = true;
}
Ein Beispiel dafür, wie dies in einem Ereignis-Handler verwendet werden könnte:
// Handles the click event for each tab
Tabstrip.tabstripLinkElement_click = function (evt, context)
{
// Find the tabStrip element (we know it's the parent element of this link)
var tabstripElement = this.parentNode;
Tabstrip.showTabByLink(tabstripElement, this);
return eventCancel(evt);
}
6 Stimmen
Und das praktische Problem in Leonels Beispiel ist, dass, wenn die aktuelle Seite irgendwie nach unten gescrollt wird, sie nach oben springt, ohne dass der Return false;
0 Stimmen
Mein IntelliJ beschwert sich bei "return false;" mit der Meldung "außerhalb der Funktionsdefinition".