Jump to content
php.lv forumi
  • 0

Get Show/Hide


goma smile

Question

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 by goma smile
Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

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 by 101111
Link to comment
Share on other sites

  • 0
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;
}

Link to comment
Share on other sites

  • 0

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 by sheps
Link to comment
Share on other sites

  • 0

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...

Link to comment
Share on other sites

  • 0

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.

Link to comment
Share on other sites

  • 0

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');

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...