goma smile Posted July 31, 2010 Report Share Posted July 31, 2010 (edited) Sveiki man ir jautājums kā uztaisīt Show / hide Klikšķinot uz linka.... Pašreiz esu uztaisijis vienāršu Show, bet vai kāds nevar pielikt ja velreiz uzpiež uz onclick="getMessage('id');return false;", vēstule aizverās function getMessage(id){ $("#open_messeage_"+id).hide(); $("#open_messeage_"+id).load("/req/pm/" + id, null, function(){ $("#open_messeage_"+id).slideDown('slow'); }); } Edited July 31, 2010 by goma smile Quote Link to comment Share on other sites More sharing options...
0 101111 Posted July 31, 2010 Report Share Posted July 31, 2010 (edited) function getMessage(id){ //$("#open_messeage_"+id).hide(); var display = $("#open_messeage_"+id).css("display"); if (display == "none") { $("#open_messeage_"+id).load("/req/pm/" + id, null, function(){ $("#open_messeage_"+id).show('slow'); }); } if (display == "block") { $("#open_messeage_"+id).hide('slow'); } } Sākumā kastēm ar id open_messeage_... jābūt neredzamām (display: none) Edited July 31, 2010 by 101111 Quote Link to comment Share on other sites More sharing options...
0 marcis Posted July 31, 2010 Report Share Posted July 31, 2010 function getMessage(id){ var e = $("open_messeage_"+id); if(e.is(":visible")){ e.hide(); return false; } if(e.attr("loaded")){ // ja vēstule jau ielādēta ar ajax, tad nav jēgas to darīt vēlreiz e.show(); }else{ e.load("/req/pm/"+id, function(){ e.attr("loaded", true); e.show(); }); } return false; } Quote Link to comment Share on other sites More sharing options...
0 briedis Posted July 31, 2010 Report Share Posted July 31, 2010 Mārci, nav slikts stils lietot nestandarta atribūtus? Moš, vienkārši piemest css klasi? Quote Link to comment Share on other sites More sharing options...
0 goma smile Posted July 31, 2010 Author Report Share Posted July 31, 2010 Paldies :) Quote Link to comment Share on other sites More sharing options...
0 marcis Posted July 31, 2010 Report Share Posted July 31, 2010 Briedis - JSā tam nav nozīmes + jQuery pats arī tā dara, piemetot visādus oldstyle un tml. Quote Link to comment Share on other sites More sharing options...
0 sheps Posted July 31, 2010 Report Share Posted July 31, 2010 (edited) es darītu šitin tā te: function getMessage(id){ // $("#msg" + id) laukam defaultaa pieliek clasi, kur {dispaly:hidden} un tas arii viss.. if($("#msg" + id).css('display')=='none'){ $("#msg" + id).show(); }else{ $("#msg" + id).hide(); } if($("#msg" + id).html().length==0){ $("#msg" + id).html('<img src="/img/load.gif" border=0>'); $("#msg" + id).load('msg.php?id='+id); } return false; } Edited July 31, 2010 by sheps Quote Link to comment Share on other sites More sharing options...
0 j2b Posted July 31, 2010 Report Share Posted July 31, 2010 es darītu šitin tā te: function getMessage(id){ // $("#msg" + id) laukam defaultaa pieliek clasi, kur {dispaly:hidden} un tas arii viss.. if($("#msg" + id).css('display')=='none'){ $("#msg" + id).show(); }else{ $("#msg" + id).hide(); } if($("#msg" + id).html().length==0){ $("#msg" + id).html('<img src="/img/load.gif" border=0>'); $("#msg" + id).load('msg.php?id='+id); } return false; } Ja lieto jQuery, tad ir parametrs .toggle .show/.hide vietā. Var būt tas noder... Quote Link to comment Share on other sites More sharing options...
0 briedis Posted August 1, 2010 Report Share Posted August 1, 2010 jep, izmanto toggle(). Lai nočekotu, vai ir redzams, parasti raksta tā: if($(selektors).is(":visible")){ } Quote Link to comment Share on other sites More sharing options...
0 j2b Posted August 2, 2010 Report Share Posted August 2, 2010 Gribētu tikai vēl piebilst, ka CSS display:none ir ar niansēm. Ja lapas stilā ieraksti display:none konkrētam objektam, tad gadījumā, ja apmeklētājam būs atslēgts JS atbalsts, viņš to objektu vispār neredzēs un tavs js skripts nenostrādās. Nesen lasīju, ka to, ko ar JS atklāj/atver, to arī pirms tam ar .hide() vajadzētu slēpt pēc DOM ielādes. Nianse ir tajā, ka, ja neta links būs lēns, vai serveris būs palēns, vai arī dažos citos gadījumos, tad būs tāds kā gļuks - kad viss ielādēsies, un pēc tam pēkšņi daļa pazudīs. Bija vairāki risinājumi, kā ar to tikt galā, bet tagad neatminos. Es katrā gadījumā ar šādām situācijām rēķinos. Uzliek gan papildus rūpes un pienākumus, bet toties darbojas abos variantos - ar/bez JS atbalstu. Quote Link to comment Share on other sites More sharing options...
0 marcis Posted August 2, 2010 Report Share Posted August 2, 2010 j2b, noscript tags domāts šādiem bez JS klientiem. <noscript><link rel="stylesheet" href="css/bezjs.css" type="text/css" media="all" /></noscript> Bet vispār, ja ir tik ļoti svarīgi šie lietotāji [bez js], tad vispār nevajadzētu likt onclick'us tabulām un visādiem citādiem elementiem. Liekam <a href="blah.php" onclick="return mansjs(this.href)">...</a>, kur mansjs() atgriež false (pēc mūsdienu standartiem eventus, protams, bindojam, nevis rakstam inline). Servera pusē xmlhttprequestus varam atšķirt pēc $_SERVER mainīgā HTTP_X_REQUESTED_WITH un attiecīgi arī izdomāt vai atgriezt pilnu lapu, vai tikai daļu no tās (MVC gadījumā šo būtu vienkārši nokārtot). define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); Quote Link to comment Share on other sites More sharing options...
Question
goma smile
Sveiki man ir jautājums kā uztaisīt Show / hide Klikšķinot uz linka....
Pašreiz esu uztaisijis vienāršu Show, bet vai kāds nevar pielikt ja velreiz uzpiež uz onclick="getMessage('id');return false;", vēstule aizverās
Link to comment
Share on other sites
10 answers to this question
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.