Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie i usuwanie edytora nicedit
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Roon
Witam. Skrypt poniżej działa poprawnie dla textarea jednak chciałbym aby działał dla elementów z odpowiednią klasą lub id np: <div class="edytuj"...

Nie jestem w stanie sam tego zmienić. Jeżeli byłoby to zbyt czasochłonne to mogę zapłacić za pomoc. Z góry dziękuję.

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset = "utf-8">
  5.  
  6.  
  7. <script src = "http://js.nicedit.com/nicEdit-latest.js"></script>
  8.  
  9. window.onload = function () {
  10. var body = document.body;
  11. body.addEventListener ("click", function (event) {
  12. var target = event.target;
  13.  
  14. if (target.nodeName === "TEXTAREA") {
  15. var area = new nicEditor ({fullPanel : true}).panelInstance (target);
  16.  
  17. area.addEvent ("blur", function () {
  18. this.removeInstance (target);
  19. });
  20. }
  21. }, false);
  22. }
  23. </script>
  24.  
  25. textarea {
  26. height: 100px;
  27. margin-bottom: 20px;
  28. width: 1000px;
  29. }
  30. </style>
  31. </head>
  32.  
  33. <body>
  34. </body>
  35. </html>
viking
Kluczem oczywiście jest linia
if (target.nodeName === "TEXTAREA")
Co byś potrzebował to wybrać elementy których atrybut ma odpowiednią klasę http://www.w3schools.com/dom/prop_attr_value.asp
Choć szybciej będzie zastosować np http://sizzlejs.com/.
Roon
Problem w tym, że nie mam pojęcia jak się za to zabrać. Na gotowca nie mam co liczyć? Zwykle zlecam wszystko co związane z js ale w tym wypadku miałem nadzieję, że ktoś mi pomoże.
kamil4u
Cytat
if (target.nodeName === "TEXTAREA") {

->
Kod
if (target.className == "klasa") {


--edit--
Choć sam skrypt jest bardzo słabo napisany
Roon
Edytor jest dodawany poprawnie ale nie jest usuwany. Jak to naprawić?
kamil4u
Pod jaką przeglądarką? Pod Chrome wydaje się ok. Pokaż czy na pewno dobrze to zrobiłeś.
Roon
Pod chrome i firefoxem jest tak samo. Działa poprawnie w przypadku textarea o określonej klasie ale w przypadku innych elementów już nie.
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset = "utf-8">
  5.  
  6.  
  7. <script src = "http://js.nicedit.com/nicEdit-latest.js"></script>
  8.  
  9. window.onload = function () {
  10. var body = document.body;
  11. body.addEventListener ("click", function (event) {
  12. var target = event.target;
  13.  
  14. if (target.className == "klasa") {
  15. var area = new nicEditor ({fullPanel : true}).panelInstance (target);
  16.  
  17. area.addEvent ("blur", function () {
  18. this.removeInstance (target);
  19. });
  20. }
  21. }, false);
  22. }
  23. </script>
  24.  
  25. textarea {
  26. height: 100px;
  27. margin-bottom: 20px;
  28. width: 1000px;
  29. }
  30. .klasa {
  31. height: 100px;
  32. margin-bottom: 20px;
  33. width: 1000px;
  34. }
  35. </style>
  36. </head>
  37.  
  38. <body>
  39. <textarea class="klasa">text</textarea> <textarea class="klasa">text</textarea> <textarea>text2</textarea><div class="klasa">tekst</div><div class="klasa">tekst</div><p class="klasa">tekst</p>
  40. </body>
  41. </html>
kamil4u
A jak div może mieć zdarzenie blur?

W ogóle użyj tego: http://wiki.nicedit.com/w/page/518/Editor%20Events .
Roon
Znalazłem prostszy sposób. Nie wiem tylko jak dodać id do wszystkich elementów zamiast tylko do pierwszego:
  1. document.getElementsByClassName('abc')[0].setAttribute('id', 'abe');
kamil4u
To nie jest prostszy sposób. Użyj tego co dałem w linku.
Roon
Już sobie poradziłem ale dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.