Autor Zpráva
Marek Žouželka
Profil *
Ahoj, potřeboval bych poradil hledně záložek. Mám kód, který mi po kliku na odkaz
<a href="#" id="addtab">Nová záložka</a>
přidá další záložku. Vypadá takle:
        <script type="text/javascript">
        $(function() {
            var total_tabs = 0;
            
            $("#addtab").click(function() {
                total_tabs++;
                $("#tabcontent p").hide();
                addtab(total_tabs, 'new');
                return false;
            });
            
            function addtab(count, name) {
                var closetab = '<a href="" id="close'+count+'" class="close">&times;</a>';
                $("#tabul").append('<li id="t'+count+'" class="ntabs">'+name+'&nbsp;&nbsp;'+closetab+'</li>');
                $("#tabcontent").append('<p id="c'+count+'">content</p>');
                
                $("#tabul li").removeClass("ctab");
                $("#t"+count).addClass("ctab");
                
                $("#t"+count).bind("click", function() {
                    $("#tabul li").removeClass("ctab");
                    $("#t"+count).addClass("ctab");
                    $("#tabcontent p").hide();
                    $("#c"+count).fadeIn('slow');
                });
            }
        });
        </script>
vše pěkně funguje, ale já bych potřeboval předávat funkci addtab argumenty. představoval jsem si to asi takle:
function predej(name) {
  total_tabs++;
  $("#tabcontent p").hide();
  addtab(total_tabs, name);
  return false;
}
a funkci predej bych volal:
<a href="#" onclick="predej(jméno)">Nová záložka</a>
ale to mi nefunguje. Poradil by prosím někdo, sám jsem v js začátečník a nemůžu to dát dohromady...
Předem děkuji ;-)
Chamurappi
Profil
Reaguji na Marka Žouželku:
ale to mi nefunguje
Prohlížeče mívají chybové konzole, z nich se můžeš přibližně dozvědět, v čem je problém.
V tomto případě by ses asi dozvěděl, že funkce addtab neexistuje… alespoň žádná globální. Ta, kterou začínáš na řádku 12, globální není, protože je definovaná uvnitř těla jiné funkce.

predej(jméno)
Jestli to jméno má být řetězec, měl by být v uvozovkách (respektive tady spíš v apostrofech).
Marek Žouželka
Profil *
a můžu se zeptat, jak z ní udělám globální?
Jak říkám, jsem začátečník, dokážu pochopit proč tam většina věcí je a jak funguje, ale zprovoznit to nedokážu.
zkoušel jsem tu funkci i přidat k těm ostatním, ale nic :-(
Marek Žouželka
Profil *
já se omlouvám, že téma oživuju, ale vážně bych to potřeboval vyřešit a už si s tím nevím rady. zkoušel jsem kód i takto:
<script type="text/javascript">
        $(function() {
            var total_tabs = 0;
            
            function predej(name) {
             total_tabs++;
             $("#tabcontent p").hide();
             addtab(total_tabs, name);
             return false;
            }
            
            function addtab(count, name) {
                var closetab = '<a href="" id="close'+count+'" class="close">&times;</a>';
                $("#tabul").append('<li id="t'+count+'" class="ntabs">'+name+'&nbsp;&nbsp;'+closetab+'</li>');
                $("#tabcontent").append('<p id="c'+count+'">content</p>');
                
                $("#tabul li").removeClass("ctab");
                $("#t"+count).addClass("ctab");
                
                $("#t"+count).bind("click", function() {
                    $("#tabul li").removeClass("ctab");
                    $("#t"+count).addClass("ctab");
                    $("#tabcontent p").hide();
                    $("#c"+count).fadeIn('slow');
                });
            }
        });
        </script>
a vubec nic. poraďte prosím někdo...
_es
Profil
Marek Žouželka:
a můžu se zeptat, jak z ní udělám globální?
Ta, kterou začínáš na řádku 12, globální není, protože je definovaná uvnitř těla jiné funkce.“([#2] Chamurappi)
JS v HTML atribútoch má prístup len ku globálnym funkciám. Ako sa definujú funkcie si vieš snáď nájsť aj sám, napríklad tu. Alebo aj udalosť kliknutia nemusíš zadávať v HTML atribúte.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: