problema jquery
Last Updated: Mar 31 2010 22:30, Started by
silviuks
, Oct 06 2009 19:26
·
0
#1
Posted 06 October 2009 - 19:26
Salutare,
Am tot cautat pe net rezolvarea problemei mele, dar se pare ca nu prea gasesc keywordurile optime asa ca sunt nevoit sa apelez la cunostintele si bunavointa voastra. ideea e urmatoarea: am un tabel cu mai multe linii, iar pe fiecare linie am un element hidden (pe fiecare linie e o alta valoare) pus intr-un div. problema e ca atunci cand dau click pe div, as vrea sa aflu valoarea de pe hidden-ul din divul de pe care am dat click, dar imi ia doar valoarea primului hidden. Orice idee si sugestie e binevenita. Multumesc si o seara placuta in continuare |
#2
Posted 06 October 2009 - 20:30
Campurile Hidden trebuie etichetate corespunzator (le dai cate un ID unic, pentru a te putea referi la ele):
<input type="hidden" name="field_X" id="field_X">Avand in vedere ca vrei sa le asezi in div-uri pe care sa dai click, probabil vrei sa simulezi niste butoane. Uite un exemplu, sa-ti faci o idee: <table width="50%"> <tr><td> <div id="div1" style="border:solid 1px" onclick="alert(document.getElementById('div1').innerHTML)"> <input type="hidden" id="input1" name="input1" value="value1">1. </div> </td></tr> <tr><td> <div id="div2" style="border:solid 1px" onclick="alert(document.getElementById('input2').value)"> <input type="hidden" id="input2" name="input2" value="value2">2. </div> </td></tr> </table>Cand dai click pe Div1, iti va afisa codul HTML din interiorul acestuia; cand dai click pe Div2 iti va afisa valoarea campului Input2. Si cred ca ai vrut sa spui "problema Javascript" nu "problema Jquery". |
#3
Posted 06 October 2009 - 21:24
Cred ca vrei sa traversezi DOM-ul relativ la div-ul respectiv, pana dai de campul hidden. API oficial: http://docs.jquery.com/Traversing
Citeste, intelege si invata neaparat despre DOM, multe probleme devin apoi rezolvabile daca faci asta inainte de toate. |
#4
Posted 07 October 2009 - 04:17
OriginalCopy, on 6th October 2009, 22:24, said: Cred ca vrei sa traversezi DOM-ul relativ la div-ul respectiv, pana dai de campul hidden. API oficial: http://docs.jquery.com/Traversing Citeste, intelege si invata neaparat despre DOM, multe probleme devin apoi rezolvabile daca faci asta inainte de toate. Multam OriginalCopy. Cred ca e cea mai buna solutie |
#5
Posted 07 October 2009 - 19:26
Presupunand ca n-ai nimic intre <div> si <input>, atunci:
jQuery("#div_id").next().val() Daca mai ai si altceva: jQuery("#div_id").parent().children("input:hidden") |
#6
Posted 09 October 2009 - 13:51
jQuery("#div_id").parent().children("input:hidden")Cred că :hidden se referă la cât de vizibil e un element. Adică distplay:block/inline e :visible iar display:none e :hidden (dar nu bag mâna în foc ) $('div').click(function(){ alert( $(this).find('input[type=hidden]').val() ); // doar dacă ai UN singur hidden în fiecare div. Dacă ai mai multe, le cauți așa: http://docs.jquery.com/Selectors/attributeStartsWith#attributevalue });Ar trebui să meargă Edited by i0nutzb, 09 October 2009 - 13:53. |
#7
Posted 14 October 2009 - 17:24
i0nutzb ai dreptate. Trebuia
Quote input[type=hidden] |
#8
Posted 18 January 2010 - 15:29
M-am lovit io acuma de o problema. Am un astfel de html, la care stiu doar id-ul tabelei. Vreau sa obtin toate id-urile imaginilor cu checkbox-ul selectat.
<table id="Names"> <tbody> <tr> <td> <span title="Select name"> <input type="checkbox" name="cbNameSelected" id="cbNameSelected"/> </span> <img border="0" onmouseout="this.style.cursor='arrow';" onmouseover="this.style.cursor='pointer';" id="imgdiv1234"/> </td> </tr> </tbody> </table> jQuery("#Names >tbody>tr>td>span :has( :checkbox[checked='true'])") imi returneaza un null frumos (length = 0 ). Mai sunt si alte variatii pt. a obtine acel id al imaginii insa sunt nelamurita de ":has", care, conform documentatiei jQuery, accepta un selector iar :checkbox e un selector |
#9
Posted 19 January 2010 - 00:12
jQuery('#Names :checkbox:checked').parent().next().attr('id') Sau dacă vrei cu .has(): jQuery('#Names td:has(:checkbox:checked) img').attr('id') Ar trebui să selecteze id-ul imaginii. De curiozitate: 1) de ce ai js inline? 2) de ce nu setezi din css cursor:arrow pentru imaginile din td (sau dacă nu știi exact parent-ul, dai o clasă la imagini)? |
#10
Posted 01 February 2010 - 19:21
i0nutzb, on 19th January 2010, 00:12, said: [..]De curiozitate: 1) de ce ai js inline? 2) de ce nu setezi din css cursor:arrow pentru imaginile din td (sau dacă nu știi exact parent-ul, dai o clasă la imagini)? 1. convenabil 2. n-am mai stresat designerul Intrebare: Am nevoie sa pot repozitiona un modal popup. Modal popup-ul e facut cam asa: var mp = { //diverse variabile open: function(){ //creeaza div, include-l in DOM, afiseaza-l } close: function(){ //sterge divurile create } } Vreau sa pot repozitiona popup-ul. Am incercat draggable din jQueryUI si jquery.event.drag-1.5. Pt. jquery.event.drag-1.5 am facut asa: - in open: jQuery('#modal-container') .bind('dragstart.draggable', function(event) { return jQuery(event.target).is('.handle'); }) .bind('drag.draggable', function(event) { jQuery(this).css({ top: event.offsetY, left: event.offsetX }); });-in close: jQuery('#modal-container').unbind('.draggable'); Chestia e ca efectul de drag se executa o singura data, desi, de fiecare data cand deschid popup-ul, se executa functia open, deci trece si prin binduri. Ceva asemanator am patit si cu jQueryUI.draggable, se executa o singura data. |
|
#12
Posted 02 February 2010 - 15:23
i0nutzb, on 2nd February 2010, 10:35, said: Dacă tot folosești UI, de ce nu folosești și dialog? Eniuei, nu inteleg ce nu-i bine in logica mea: - la open, creez div-ul, il bag in dom, ii fac bind la eventurile de dragg - la close, fac unbind si sterg div-ul , de se executa event handlerul o singura data... |
#13
Posted 02 February 2010 - 18:10
Quote Cica e prea mare libraria de UI (78KB), asa ca le facem din mana/plugin-uri. Oricum, revenind la scriptul tău, în momentul în care închizi popupul, nu mai unbindui nimic (deși mă îndoiesc ca ar putea fi asta problema). Altfel.. Nu știu ce să-ți zic. |
#14
Posted 02 February 2010 - 18:25
Nici eu n-am rabdare sa ma uit, DAR:
rescriind totul: 1. nu vei ajunge la aceeasi calitate a codului intr-un timp foarte scurt, si 2. chiar daca ajungi la aceeasi calitate, cel mai probabil codul rezultat NU va fi mai mic de cat sunt deja pluginurile deja existente. |
#15
Posted 02 February 2010 - 18:58
OriginalCopy, on 2nd February 2010, 18:25, said: Nici eu n-am rabdare sa ma uit, DAR: rescriind totul: 1. nu vei ajunge la aceeasi calitate a codului intr-un timp foarte scurt, si 2. chiar daca ajungi la aceeasi calitate, cel mai probabil codul rezultat NU va fi mai mic de cat sunt deja pluginurile deja existente. Afcors, da' mno ... Eniuei, am mai frecat la problema mea. Cred ca problema e modul de creere si de folosire a obiectului de modalpopup. |
|
#16
Posted 03 February 2010 - 22:56
Quote 2. chiar daca ajungi la aceeasi calitate, cel mai probabil codul rezultat NU va fi mai mic de cat sunt deja pluginurile deja existente. Quote Eniuei, am mai frecat la problema mea. Cred ca problema e modul de creere si de folosire a obiectului de modalpopup. |
#17
Posted 08 March 2010 - 17:27
i0nutzb, on 3rd February 2010, 22:56, said: [...]trântește codul aici, poate îți scapă ceva Pana cand se intampla minunea, am facut un plugin de tooltip. Unul din parametrii tooltip-ului in reprezinta un atribut custom al elementului pe care se aplica tooltip-ul. jQuery("table#AuthTable tr td.l a").tooltip(jQuery(this).attr('aid'));Mno, in exemplul dat, acel this e HTMLDocument, nu elementul curent pe care se aplica tooltip-ul. Se poate obtine si altfel atributul aid, avand in vedere ca jQuery("table#AuthTable tr td.l a") e o lista si nu ma tenteaza s-o iterez pt. a atasa tooltip-ul (decat ca ultimate solution) |
#18
Posted 09 March 2010 - 18:57
Nu chiar. Nu trimiți în modul ăsta parametrii spre plugin. Folosești un JSON și faci ceva de genul:
jQuery("table#AuthTable tr td.l a").tooltip({ foo : bar}) Chestia e că iterarea oricum o faci în plugin: (function($){ $.fn.tooltip= function(options){ o = jQuery.extend({ foo: 'defaultVal' // vei folosi codul în forma o.foo }, options); return this.each(function(){ $(this).attr('aid') // care este jQuery("table#AuthTable tr td.l a") }) }})(jQuery); Totuși, pe link poți pune atât title cât și alt (parcă). Chiar nu îți ajung astea două și TREBUIE să inventezi un atribut invalid ? Edited by i0nutzb, 09 March 2010 - 18:58. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users