renathy Posted January 18, 2011 Report Share Posted January 18, 2011 (edited) Neizdodas checkbx grupai ar doto name piesaistīt eventu onclick (uz checkbox klikšķa kaut ko skatāmies, t.i., kaut vai -ja tas ir checkted, tad alert-ojam). (document).ready(function() { $(':checkbox[name="chb_parameters[]"]')...??? Mēģināju each ciklu, bet nesanāk. Edited January 18, 2011 by renathy Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted January 18, 2011 Report Share Posted January 18, 2011 (edited) HTML <input type="checkbox" class="chekboksis" name="chb_parameters[]" value="Test1" /> <input type="checkbox" class="chekboksis" name="chb_parameters[]" value="Test2" /> <input type="checkbox" class="chekboksis" name="chb_parameters[]" value="Test3" /> <input type="checkbox" class="chekboksis" name="chb_parameters[]" value="Test4" /> JS jQuery('.chekboksis').click(function() { alert(jQuery(this).val()); }); Edited January 18, 2011 by rATRIJS Quote Link to comment Share on other sites More sharing options...
renathy Posted January 19, 2011 Author Report Share Posted January 19, 2011 Tagad it kā strādā. Bet radās problēma: sākumā viss ir normāli, bet tad nospiežot kaut ko tiek izsaukts Ajax pieprasījums, kas pārģenerē checkboxus. Un pārģenerētiem checkboxiem vairs nav eventu. Man Ajax izsauc failu teiksim test.php, kas uzģenerē html-u ar vajadzīgiem checkboxiem, bet eventus nekur nepieliek. Kā būtu pareizi darīt? Quote Link to comment Share on other sites More sharing options...
briedis Posted January 20, 2011 Report Share Posted January 20, 2011 Atbilde uz jautājumu: http://api.jquery.com/live/ Quote Link to comment Share on other sites More sharing options...
renathy Posted January 20, 2011 Author Report Share Posted January 20, 2011 (edited) Ok, paldies. Uzreiz visas problēmas atrisinātas :) Lai gan ne visas - līdzīga problēma ir sekojoša. Ir divi selecti un divs: <select name="select1"> ... <select name="select2"> ... <div id="data">... Mainot select2 vērtības, izsaucam ajaxu, kas izmaina diva saturu. Tas strādā: $("#formid select[name=select2] change(function(){ $.get("ajax_test.php", {id: $(this).val()}, function(data){ $("#data)html(data); }); }); Mainot select1 vērtības, izsaucam ajaxu, kas izmaina select2 option vērtības. Tas ari strādā: $("#form_id select[name=select1]").change(function(){ $.get("ajax_boards.php", {brd: $(this).val()}, function(data){ $("#form_id select[name=select2].html(data); }); }); Bet problēma ir tā, ka mainot select1 vērtības, mainās select2 vērtības un būtu automātiski jānomainās ari div-a vērtībām, bet šajā gadījumā, change events nenostrādā. Edited January 20, 2011 by renathy Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted January 20, 2011 Report Share Posted January 20, 2011 Izsauc manuaali change eventu. jQuery(selector).change(); Quote Link to comment Share on other sites More sharing options...
renathy Posted January 24, 2011 Author Report Share Posted January 24, 2011 Strādā, bet jaunas problēmas. Ir checkboxi, kuriem ir klase "param_checkboxes" un katram checkboxim blakus ir editbox vai selects. Spiežot uz checkboxi attiecīgi editbox/selects kļūst enabled/disabled. Gandrīz darbojas... Ir kods, kas veic augstākminēto: $('.param_checkboxes').live('click', function() { alert(jQuery(this).val()) var name = 'par_' + $(this).val(); var elm = $('#filter_form *[name="'+name+'"]'); if($(this).is(':checked')) { elm.removeAttr("disabled"); } else { elm.attr("disabled", "disabled"); } }); Viss strādāja. Bet tad ir nepieciešams ielādējot lapu aizpildīt dažus checkboxus. Tad aiz katra checkbox-a, kurš ir "checked", tiek uzģenerēts kaut kāds tāds kods (kura mērķis izsaukt click eventu): <input type="checkbox" id="chb_1" class="param_checkboxes" ...> <input type="text" id="1" name="par_1" ... <script type="text/javascript">jQuery($('#chb_1')).click();</script> Idejiski ielādējot lapu, ielādējot katru checkboxi gribu izsaukt chekcboxim on click eventu, bet šajā gadījumā nenostrādā. Quote Link to comment Share on other sites More sharing options...
indoom Posted January 24, 2011 Report Share Posted January 24, 2011 jQuery($('#chb_1')).click(); kas tā par dubultošanos? $('#chb_1').trigger('click'); Quote Link to comment Share on other sites More sharing options...
renathy Posted January 24, 2011 Author Report Share Posted January 24, 2011 (edited) Dubultošanās tiešām bija, bet tas diemžēl nepalīdzēja... Click events netiek uzsākts pie labas ielādes. Šeit var redzēt, ka netiek izsaukts tas clicks pie lapas ielādes... <html> <head> <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> <script> $(document).ready(function() { $('#chb_1').live('click', function() { alert(jQuery(this).val()) }); }); </script> </head> <body> <input type="checkbox" id="chb_1" value="1" name="chb_parameters[]" class="param_checkboxes"> <script type="text/javascript">$('#chb_1').trigger('click');</script> </body> </html> Edited January 24, 2011 by renathy Quote Link to comment Share on other sites More sharing options...
marcis Posted January 24, 2011 Report Share Posted January 24, 2011 Eventu tu piebindo, kad DOM ir gatavs. Pēc tam arī būtu jāizsauc piebindotā funkcija, nevis vienkārši kaut kur randomā. $(function(){ $('#chb_1').live('click', function() { alert(jQuery(this).val()) }).click(); }); Quote Link to comment Share on other sites More sharing options...
renathy Posted January 25, 2011 Author Report Share Posted January 25, 2011 (edited) Respektīvi <script type="text/javascript">$('#chb_1').trigger('click');</script> nenostrādā, jo vēl nav izveidots viss DOM un tad arī tas "live/click" nav piesaistīts? Hmm, mēģināšu. Vienkārši "kaut kur uz dullo" bija vieglāk, jo man ne jau visiem checkboxiem jābūt ieķeksētiem, bet tikai kaut kādiem un to nosaka Smarty padotie parametri. Šos Smarty parametrus es apstrādāju ciklā un ja izpildās nosacījumi, tad attiecigo checkboxi ieķeksēju un gribu viņam izsaukt "check-eventu": {foreach from=$catParameters key=k item=param} <input class="param_checkboxes" name="chb_parameters[]" value="{$param.id}" id="chb_{$param.id}" type="checkbox"/> ... {if $param.value neq ''} <script type="text/javascript">$('#chb_1').trigger('click');</script> {/if} {/foreach} Tad laikam man kaut kur citur jāapstrādā Smarty vēlreiz un jāmēģina saveidot attiecīgie "click-i" tikai dažiem checkboxiem... ? Edited January 25, 2011 by renathy Quote Link to comment Share on other sites More sharing options...
indoom Posted January 25, 2011 Report Share Posted January 25, 2011 Ieliec atsevišķā funkcijā to, ko grib darīt $.fn.doThis = function(){ return $(this).each(function(){ // te alert(this.value); }); }; $(function(){ // pieliek live uz vajadzīgajiem checkboxiem $('input:checkbox') .live('click', $.fn.doThis); // palaižam uz ieķeksētajiem $('input:checkbox:checked').doThis(); }); Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.