Salut
Am si eu o problema, incerc sa generez din jquery niste campuri html care contin si un link de forma
<a href='#' onclick="remove_cell(123)">clic aici pentru stergere celula</a>
problema e ca nu am reusit sa fac sa mearga functia de la onclick fara sa ia si a href-ul (adica ma intereseaza cand dau click sa execute functia remove_cell() dar sa nu ma redirecteze la a href="#" (un fel de preventdefault))
codul demo l-am pus la http://jsfiddle.net/ggn6L/7/
ceva idei de abordare a problemei?
problema rulare jquery sau problema de logica?
Moderator: Moderatori
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
problema rulare jquery sau problema de logica?
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
- virus
- Average Member
- Mesaje: 153
- Membru din: Dum Feb 27, 2011 3:16 pm
- Localitate: Timisoara
- Contact:
Re: problema rulare jquery sau problema de logica?
Salut
1)
2) Daca nu vrei sa mai faci inca o functie ->
event.preventDefault; ==> event.preventDefault();
In functia generate_cell() tot trebuie sa pui return false la onclick.
Nici nu mai e nevoie de acel '#' la href.
1)
Cod: Selectaţi tot
<html>
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<div id="content">
<form action="blabla" method="post">
<a href="#" id="genereaza" onclick="genereaza(); return false;">click aici pentru generare</a>
<span id="tr_cell_0"></span>
<input name="total_cels" id="total_cels" type="hidden" value="0">
</form>
</div>
<script>
<!-- $(document).ready(function() { -->
<!-- $('#genereaza').click(function(event) { -->
function genereaza ()
{
<!-- event.preventDefault; -->
var total_cels = parseInt( $('#total_cels').val() );
var new_cell = total_cels + 1;
var content_cell = generate_cell(new_cell);
$("#tr_cell_"+total_cels).append(content_cell);
$("#tr_cell_"+total_cels).after("<span id='tr_cell_"+new_cell+"'></span>");
$("#total_cels").val(new_cell);
}
<!-- }); -->
<!-- }); -->
function generate_cell(new_cell) {
return "<br><a href='#' onClick='remove_cell("+new_cell+"); return false;'>click aici pentru a sterge celula "+new_cell+"</a>" +
"<br><label for='label_"+new_cell+"'>Label celula "+new_cell+"</label>" +
"<input name='label_"+new_cell+"' type='text' id='label_"+new_cell+"'>";
}
function remove_cell(id_cell) {
alert(id_cell);
//$( "#tr_cell_"+id_cell).remove();
}
</script>
</html>
2) Daca nu vrei sa mai faci inca o functie ->
event.preventDefault; ==> event.preventDefault();
In functia generate_cell() tot trebuie sa pui return false la onclick.
Nici nu mai e nevoie de acel '#' la href.
echo ($busy === TRUE) ? "F**k Off" : "Hello. Can I help You?" ;
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
Re: problema rulare jquery sau problema de logica?
in afara ca ai pus genereaza() intr-o functie nu inteleg ce ai facut in plus?
pe mine ma intereseaza sa functioneze linia asta
return "<br><a href='#' onClick='remove_cell("+new_cell+"); return false;'>click aici pentru a sterge celula "+new_cell+"</a>" +
problema e ca in teste nu imi ia return false ci imi ia direct a href-ul...
vezi in exemplul meu cum functioneaza si testeaza acolo, eu nu am reusit
pe mine ma intereseaza sa functioneze linia asta
return "<br><a href='#' onClick='remove_cell("+new_cell+"); return false;'>click aici pentru a sterge celula "+new_cell+"</a>" +
problema e ca in teste nu imi ia return false ci imi ia direct a href-ul...
vezi in exemplul meu cum functioneaza si testeaza acolo, eu nu am reusit
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
- virus
- Average Member
- Mesaje: 153
- Membru din: Dum Feb 27, 2011 3:16 pm
- Localitate: Timisoara
- Contact:
Re: problema rulare jquery sau problema de logica?
Am facut functia genereaza() ca sa o pun la onclick la linkul acela.
Am facut test pe jsfiddle, dar acolo nu imi pune # la url, de aceea am pus codul la mine pe localhost ca sa testez.
La click, pe 'click aici pentru generare' iti adauga inca un input, iar la click pe 'click aici pentru a sterge celula' iti afiseaza un alert deocamdata.
Asta si ar trebui sa faca...
Ca sa nu mai schimbe url-ul in browser (sa puna acel #) pui 'return false;' la onclick.
La actiunea de onlclick din jquery trebuie sa modifici event.preventDefault; in event.preventDefault();
Cand dai click pe primul link iti pune '#' in browser daca pui event.preventDefault() ?
EDIT: Pe jsfiddle da o eroare de JS. Zice ca nu exista functia remove_cell();
Am facut test pe jsfiddle, dar acolo nu imi pune # la url, de aceea am pus codul la mine pe localhost ca sa testez.
La click, pe 'click aici pentru generare' iti adauga inca un input, iar la click pe 'click aici pentru a sterge celula' iti afiseaza un alert deocamdata.
Asta si ar trebui sa faca...
Ca sa nu mai schimbe url-ul in browser (sa puna acel #) pui 'return false;' la onclick.
La actiunea de onlclick din jquery trebuie sa modifici event.preventDefault; in event.preventDefault();
Cand dai click pe primul link iti pune '#' in browser daca pui event.preventDefault() ?
EDIT: Pe jsfiddle da o eroare de JS. Zice ca nu exista functia remove_cell();
echo ($busy === TRUE) ? "F**k Off" : "Hello. Can I help You?" ;
Re: problema rulare jquery sau problema de logica?
Salutare,
Daca nu ma insel, din punctul de vedere al <a href='#' onClick='remove_cell("+new_cell+"); return false ...... remove_cell() nu exista.
In jsfiddle mi-a mers codul de mai jos.
Daca nu ma insel, din punctul de vedere al <a href='#' onClick='remove_cell("+new_cell+"); return false ...... remove_cell() nu exista.
In jsfiddle mi-a mers codul de mai jos.
Cod: Selectaţi tot
$(document).ready(function() {
$('#genereaza').click(function(event) {
event.preventDefault;
var total_cels = parseInt( $('#total_cels').val() );
var new_cell = total_cels + 1;
var content_cell = generate_cell(new_cell);
$("#tr_cell_"+total_cels).append(content_cell);
$("#tr_cell_"+total_cels).after("<span id='tr_cell_"+new_cell+"'></span>");
$("#total_cels").val(new_cell);
});
$("body").on('click','.rm',function(evt){
console.log(evt)
console.log($(this).data('cell'))
});
});
function generate_cell(new_cell) {
// Am adaugat la link class='rm' si
// data-cell='new_cell' pentru a transmite informatia mai departe
return "<br><a href='#' class='rm' data-cell='"+new_cell+"' >click aici pentru a sterge celula "+new_cell+"</a>" +
"<br><label for='label_"+new_cell+"'>Label celula "+new_cell+"</label>" +
"<input name='label_"+new_cell+"' type='text' id='label_"+new_cell+"'>";
}
Înapoi la “Librarii Javascript”
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator