Jump to content
php.lv forumi

jquery pieskaitit vai atnemt


No0ne

Recommended Posts

Sākšu uzreiz ar linku, jo savādāk ļoti grūti izskaidrot būs. http://www.filmas-online.lv/quick.php?stack=1

Tajā linkā doma tāda, ka uzspiežot uz + "Skatīšos vēlāk" ir jāpalielinās par 1, bet nospiežot - jāsamazinās par 1.

 

<script type="text/javascript">
$(function() {
$('.over_img, .on_img').click(function(){
var amount = $(this).hasClass('over_img') ? 1 : -1 ;
$('.gramatz').text(function(i, val){
   	return '(' + ( +val.replace(/[^\d]/g, '') + amount) + ')';
});
});
$(".love").click(function()
{
var id = $(this).attr("id");
var dataString = 'id='+ id;
var parent = $(this);
$(this).fadeOut(300);
$.ajax({
type: "POST",
url: "bookmark.php",
data: dataString,
cache: false,
success: function(html)
{
parent.html(html);
parent.fadeIn(300);
}
});
return false;
}

);
});

</script>

 

Ja tur ir pluss, tad tas veidojas no over_img, ja minuss, tad no on_img div klaseem.

Problēma ir tajā, ka tas over_img un on_img rodas pēc klikšķa no tā ko atgriež bookmark.php fails.

Nu un nestrādā mīnuss, nespēju izprast kā izlabot.

Link to comment
Share on other sites

Es nesaprotu, kas tur īsti nestrādā, tieši tāpēc iedevu linku. Ja tas <div class="on_img"> būtu pa taisno kodā, tad viss strādā, bet tā kā viņas rodas no tā, ko pretī pieprasījumam saņem jquerys, tad viņas nestrādā kā vajag.

 

http://jsfiddle.net/gaA2J/1/ rekur ir piemērs, ka strādā ja ir + un - vienkārši kā html uzrakstīts.

Bet man sākumā ir viens, bet pēc tam jquery to nomaina uz pretējo un tad vairs nestrādā kā vajag, piem man ir sads html:

 

<span class="gramatz">(8)</span>
<div class="over_img">POGA</div>

piespiezjam POGA, over_img nomainas uz on_img un gramatz kljust par (9). OK tagad spiezam tikko izveidoto jauno POGU un gramatz butu jaklust atpakal par (8) bet fig.

 

Tā nu būtu tā problēma.

Link to comment
Share on other sites

Nu kā.. $('.over_img, .on_img').live('click', function(){

 

vajadzēja savādāk?

 

 

P.S. un jā arī tālāk turpinās viss..

 

ai rekur pilnais kods lai nebutu jautajumu vai tiesam tas un tas ir pievienots :D

 

<script type="text/javascript">
$(function() {
$('.over_img, .on_img').live('click', function(){
var amount = $(this).hasClass('on_img') ? 1 : -1 ;
$('.gramatz').text(function(i, val){
   	return '(' + ( +val.replace(/[^\d]/g, '') + amount) + ')';
});
});
$(".love").click(function()
{
var id = $(this).attr("id");
var dataString = 'id='+ id;
var parent = $(this);
$(this).fadeOut(300);
$.ajax({
type: "POST",
url: "bookmark.php",
data: dataString,
cache: false,
success: function(html)
{
parent.html(html);
parent.fadeIn(300);
}
});
return false;
}
);
});
</script>

 

arī $.love meginaju mainit uz live, tapat nebija rezultata.

Edited by No0ne
Link to comment
Share on other sites

Viss ko dzīvais īvents dara ir meklē arī tajos elementos, kas ir pievienoti kaut kā maģiski (piemēram no AJAX atbildes) pēc lapas ielādes. T.i., vēlreiz ielādē DOM koku. :)

Link to comment
Share on other sites

$('body').delegate('.over_img, .on_img', 'click', function(){
var amount = $(this).hasClass('on_img') ? 1 : -1 ;
$('.gramatz').text(function(i, val){
   	return '(' + ( +val.replace(/[^\d]/g, '') + amount) + ')';
});
});

 

divs `gramatz`, piespiezjot plusu, paliek nemainigs.

 

varbut kads var pateikt, kas konkreti un uz kadu kodu ir jaizlabo?

Link to comment
Share on other sites

Visdrīzāk, ka nezin gan, bet nebūtu problēmu to atrisināt. Te problēma ir tikai debugošanā, jo problēma nav acīmredzama. Nevienam negribas vienkārši tavā vietā urbties cauri kodam un debugot viņu.

Ej cauri kodam, liec attiecīgajās vietas šādas rindiņas:

alert("Kods izpildās šeit"); 

vai

alert("Mainīgā vērtībā ir: " + kautKadsMainigais);

un skaties, cik tālu kods izpildās, kādas vērtības nonāk mainīgajos. LOKALIZĒ PROBLĒMU!

Edited by briedis
Link to comment
Share on other sites

tā arī neizpratu kā ar firebug var ērti ar javascripta debugošanu ņemties, bet nu ok, klausīju briedim, aizņēma gan tas diezgan, bet beigu beigās panācu to, ko vajag.

 

kā? tieši tā, kā xPtv45z teica - click vietā jālieto live('click',.. Paldies viņam un nepaldies reizē, jo, ja viņš tomēr bija domājis, ka tas click ir jāmaina visiem 3 (over_img, on_img un love), tad varēja pateikt, lai es nebūtu tik briesmīgi ilgi čakarējies, kā nekā kodu es iekopēju jau pirms tam.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...