Pereiti prie turinio

[SOLVED] JavaScript klausimas


Rekomenduojami pranešimai

Taigi vel tas galvos skausmas - JavaScript(asmeniskai man). Uzduotis yra tokia, kad paspausdamas ant elemento, jis(tas elementas) turi pasikeisti ir vietai jo turi atsirasti kitas toks pats HTML kodas tik tarkim kitas skaicius. O problema tai, kad pasikeitus tam HTML kodui antra karta nefiksuoja paspaudimo. Stai kodas:

 

<html>
<head>
<title>Kodel nveikia?!</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
	$(document).ready(function() {
		$("#change .thisC b").on("click", function() {
			var id = parseInt($("#change .thisC").attr("id")) + 1;
			$("#change").html("<div id='" + id + "' class='thisC'>It's changable, and the id is: <b>" + id + "</b></div>");
			$("#change .thisC").attr("id", id);
			alert("CHANGED");
		});
	});
</script>
</head>
<body>
<div id="change">
	<div id="1" class="thisC">It's changable, and the id is: <b>1</b></div>
</div>
</body>
</html>

 

Nors tokius atveju ir turetu f-cija "on"("live" f-cijos pakaitalas) daryti savo darba, ar as klystu?

 

Problema isspresta.

 

Selectorius turejo atrodyti taip:

 

$(document).on("click", "#change .thisC b", function() {
   // ...
});

 

P.S. Idomus dalykas, bandziau isspresti sia problema nemaza laika, tik parasiau tema - magiskai atsirado sprendimas(t.y. atradau pats) ir taip jau ne pirma karta ^^

Redagavo f34r
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nors šiame forume pradėjau lankytis paskutiniu metu dažnai ir vis labiau susidarau įspūdį kad dauguma forumiečių rašo tik tam kad rašytų.

 

karolisgud: Pirma pasidomėk ką rašai, prieš rašydamas.

 

1. Dalykas atkreipk dėmesį kokią jQuery versiją jis naudoja. Jei nesimato rašau: 1.8.3

2. Pasiskaitinėk dokumentaciją: As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers.

f34r:

http://jsbin.com/welcome/70279/edit

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dekui Min2liz, bet man reikejo pakeisti visa diva (.thisC) ir kai tai padarai per nauja isiraso tas b elementas ant kurio yra spaudziama ir tuo atveju jis kazkodel neveike(pasikeitus), siektiek pakeitus f-cija pradejo veikti. Vat labai naudingos eilutes:

 

$("a.offsite").live("click", function(){ alert("Goodbye!"); });                // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); });  // jQuery 1.4.3+
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });        // jQuery 1.7+

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nors šiame forume pradėjau lankytis paskutiniu metu dažnai ir vis labiau susidarau įspūdį kad dauguma forumiečių rašo tik tam kad rašytų.

 

karolisgud: Pirma pasidomėk ką rašai, prieš rašydamas.

 

1. Dalykas atkreipk dėmesį kokią jQuery versiją jis naudoja. Jei nesimato rašau: 1.8.3

2. Pasiskaitinėk dokumentaciją: As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers.

 

f34r:

 

http://jsbin.com/welcome/70279/edit

 

Aš tik uždaviau klausimą.. Kažkada naudojau live ir viskas veikė, todėl ir paklausiau kodėl jis netinka.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nors šiame forume pradėjau lankytis paskutiniu metu dažnai ir vis labiau susidarau įspūdį kad dauguma forumiečių rašo tik tam kad rašytų.

 

karolisgud: Pirma pasidomėk ką rašai, prieš rašydamas.

 

1. Dalykas atkreipk dėmesį kokią jQuery versiją jis naudoja. Jei nesimato rašau: 1.8.3

2. Pasiskaitinėk dokumentaciją: As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers.

 

f34r:

 

http://jsbin.com/welcome/70279/edit

 

Aš tik uždaviau klausimą.. Kažkada naudojau live ir viskas veikė, todėl ir paklausiau kodėl jis netinka.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...