TORU Foorum

Php ja jquery sidumine

Whitedragon - 6.1.2011 22:45

Tekkis siis arenduse käigus probleem... PHP genereerib iga sekund uue lehe kuid sooviks teha et kui inimene vajutab lingile tuleb lahti lehel üleval pool olev jquery tabide reas uus aken.
hetkel on nii et nupp(
Kood:
<a id="add_tab">Tester</a>
)
mis ei genereerita php poolt töötab kuid divvi topitav php(tagides ise kirjutatud) aga ei käivitu antud kood. Oskab keegi öelda mix võib mitte töödata div-s olev kood?
Kood:
<div id="area"><a id="add_tab">Tester</a></div>

jquery kood kah
Kood:
$( "#add_tab" ) // lisades #area#add_tab ei tööta... .button() .click(function() { addTab(); });



[Muudetud: 6.1.2011 Whitedragon]

[Muudetud: 7.1.2011 Whitedragon]

Timukas - 7.1.2011 00:30

Div-id ei tohiks midagi mõjutada. Mittetöötava lehe koodist oleks kasu.

Whitedragon - 7.1.2011 00:42

Kumba sa mõtled? PHP-d või jquery?

Timukas - 7.1.2011 01:00

Ma saan aru, et javascripti (jquery) osa ei tööta, siis oleks vaja HTMLi lähtekoodi (kus olemas nii jquery kood kui mittetöötav nupp).

Whitedragon - 7.1.2011 09:36

Uploaditud... Ei hakka hetkel ülessse laadima jquery-t
(antud failis pole jquery-t sisse kustutud kuna see kutsutakse välja juba eelnevalt head-is lehel kuhu see includetakse)

Lisa fail: jqueryviga.html (2kB)
Seda faili on alla laaditud 502 korda

Timukas - 7.1.2011 13:00

Mul töötab kenasti. Tester-link loob uue "tabi" ja saab selle kenasti eemaldada ka "remove tab" abil. Kui sul ei tööta, siis kontrolli, et jquery õigesti include'itakse lehel.

Whitedragon - 7.1.2011 13:56

Kas proovisid ka seda mis on seal <div id="area">-t? see mis div area-st väljas on toimib ka minul

Timukas - 7.1.2011 20:50

See on sul lihtsalt tühi div:
Kood:
<div id="area"></div>

Whitedragon - 7.1.2011 20:55

Seda nüüd küll kuid pane see kood antud div-i ning vaata kas töötab.... Minul mitte

andrusny - 7.1.2011 21:06

See on väga lihtne põhjus. html on vigaselt kirjutatud. Mitut id ei saa ühel lehel olla. Sa pead kasutama class Ži sellises olukorras

Kood:
<div id="area"></div><a class="add_tab">Tester</a></div></p>


(ka esimene Tester peab class olema)
muutma pead ka väljakutsuvas funktsioonis selle nime classiks


Kood:
// addTab button: just opens the dialog $( ".add_tab" ) .button() .click(function() { addTab(); });



Whitedragon - 8.1.2011 16:03

Nüüd sain selle oas korda kuid ta saab nüüd addtab()-is ainult esimese classi väärtuse. Kuidas panna tedda saama just klicktud classi väärtust?

Timukas - 8.1.2011 16:13

Midagi sellist mõtled?
Kood:
function addTab(temp) { var tab_title = "Priva" + temp; $tabs.tabs( "add", "#tabs-" + tab_counter, tab_title ); tab_counter++; } // addTab button: just opens the dialog $( ".add_tab" ) .button() .click(function() { addTab($(this).html()); });

Whitedragon - 8.1.2011 16:37

Korras tänud... ma toppisin seda sinna addTab() alla .html-i

Whitedragon - 24.1.2011 12:23

järjekordselt tekkis viga add_tabiga... nimelt kasutades jquery funktsiooni .load( ei tööta enam .add_tab
Kood:
var auto_refresh = setInterval( function() { $('#area').load('request.php?action=get_xml'); $( ".add_tab" ).click(function() { addTab($(this).html()); }); }, 5000);


[Muudetud: 24.1.2011 Whitedragon]