[JS] href disablen

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik ben bezig met een wysiwyg editor in javascript. Op een bepaald moment in de code, voeg ik buttons toe aan de toolbar met behulp van de functie createButton:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
txtEditor.prototype.createToolbar = function(idprefix) {
  // ...
  this.createButton(theList.id + 'ButtonBold', 'tctButton', 'Bold', 'bold');
  this.createButton(theList.id + 'ButtonLink', 'txtButton', 'Hyperlink', 'link');
}

txtEditor.prototype.createButton = function(theID, theClass, theLabel, theAction) {
  var menuItem = document.createElement('li');
  var theLink = document.createElement('a');
  var theText = document.createTextNode(theLabel);
    
  menuItem.id = theID;
  menuItem.className = 'txtEditButton';

  theLink.href = '#';
  theLink.title = theLabel;
  theLink.className = theClass;
  theLink.action = theAction;

  var self = this;
  var onclickHandler = this.toolbarAction;
  theLink.onclick = function() {
    onclickHandler.call(self, theAction);
  } 
  
  theLink.appendChild(theText);
  menuItem.appendChild(theLink);

  return menuItem;
}

txtEditor.prototype.toolbarAction = function(theAction) {
  var target = this.textarea;
  // do stuff with theAction...
}

Het probleem is als volgt: telkens als ik op een button in de toolbar klik, gaat de browser naar http://www.mijnsite.com/#. Ik wil de href dus disablen en via Google vond ik dat ik dat moet doen met het toevoegen van return false aan de onclick handler:
code:
1
<a href="#" onclick="toolBarAction('bold'); return false;">Bold</a>

Maar hoe moet ik de functie createButton aanpassen, zodat deze return false; aan de buttons toevoegt? Ik probeerde al
JavaScript:
18
theLink.action = theAction + ' return false;';

maar dat werkt niet. Wie kan mij helpen?

[ Voor 3% gewijzigd door Reveller op 28-12-2006 21:35 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • Victor
  • Registratie: November 2003
  • Niet online
De onclick functie false laten returnen?

Dus:
JavaScript:
1
2
onclickHandler.call(self, theAction);
return false;

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Dat werkt perfect; dank je! :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Waarom zou je een anchor willen gebruiken voor iets dat geen link is?

Intentionally left blank


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
crisp schreef op donderdag 28 december 2006 @ 23:24:
Waarom zou je een anchor willen gebruiken voor iets dat geen link is?
Ik dacht dat het href attribuut verplicht was binnen een a-tag }:O Maar gewoon weglaten is natuurlijk veel logischer. Dan kan ik ook meteen onclick this.blur(); weghalen _/-\o_

[ Voor 18% gewijzigd door Reveller op 29-12-2006 00:01 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Reveller schreef op vrijdag 29 december 2006 @ 00:00:
[...]

Ik dacht dat het href attribuut verplicht was binnen een a-tag }:O
Met 'anchor' bedoel ik ook een A-element. Het is geen link dus waarom zou je een A-element gebruiken? Je kan net zo goed een SPAN gebruiken met een onclick, of de onclick op de LI zetten...

Intentionally left blank


  • Victor
  • Registratie: November 2003
  • Niet online
Reveller schreef op vrijdag 29 december 2006 @ 00:00:
[...]

Ik dacht dat het href attribuut verplicht was binnen een a-tag }:O Maar gewoon weglaten is natuurlijk veel logischer. Dan kan ik ook meteen onclick this.blur(); weghalen _/-\o_
- href is verplicht voor een anchor
- waar heb je this.blur() voor nodig?
crisp schreef op vrijdag 29 december 2006 @ 00:02:
[...]

Met 'anchor' bedoel ik ook een A-element. Het is geen link dus waarom zou je een A-element gebruiken? Je kan net zo goed een SPAN gebruiken met een onclick, of de onclick op de LI zetten...
Nadeel is dat je er dan geen accesskeys aan kan hangen of er naar toe kunt tabben.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

King_Louie schreef op vrijdag 29 december 2006 @ 19:29:
[...]

- href is verplicht voor een anchor
not true...
[...]

Nadeel is dat je er dan geen accesskeys aan kan hangen of er naar toe kunt tabben.
hmmz, dat zou dan misschien wel een argument zijn om een anchor te gebruiken...

Intentionally left blank


  • Victor
  • Registratie: November 2003
  • Niet online
Stom, da's waar ook. Lang geleden gebruikte je die dingen natuurlijk ook voor de <a name=""></a> constructies... I stand corrected :)
Pagina: 1