phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Collapse delle righe di una tabella

Discussioni relative al linguaggio di programmazione client side.
Rispondi
Avatar utente
xX_Simon_Xx
Utente Pro
Utente Pro
Messaggi: 637
Iscritto il: 25/11/2009, 15:36
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.2.13
Database: MySQL(i) 5.1.34
Contatta:

Collapse delle righe di una tabella

Messaggio da xX_Simon_Xx » 28/10/2012, 19:50

Ho un piccolo problema nell'adoperare jQuery e un suo plugin Questo:

Codice: Seleziona tutto

/**
 * Collapsible plugin
 *
 * Copyright (c) 2010 Ramin Hossaini (www.ramin-hossaini.com)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

jQuery.collapsible = function(selector, identifier) {
	
	//toggle the div after the header and set a unique-cookie
	$(selector).click(function() {
		$(this).next().slideToggle('fast', function() {
			if ( $(this).is(":hidden") ) {
				$.cookie($(this).prev().attr("id"), 'hide');
				$(this).prev().children(".placeholder").removeClass("collapse").addClass("expand");
			}
			else {
				$.cookie($(this).prev().attr("id"), 'show');
				$(this).prev().children(".placeholder").removeClass("expand").addClass("collapse");
			}
		});
		return false;
	}).next();

	
	//show that the header is clickable
	$(selector).hover(function() {
		$(this).css("cursor", "pointer");
	});

	/*
	 * On document.ready: should the module be shown or hidden?
	 */
	var idval = 0;	//increment used for generating unique ID's
	$.each( $(selector) , function() {

		$($(this)).attr("id", "module_" + identifier + idval);	//give each a unique ID

		if ( !$($(this)).hasClass("collapsed") ) {
			$("#" + $(this).attr("id") ).append("<span class='placeholder collapse'></span>");
		}
		else if ( $($(this)).hasClass("collapsed") ) {
			//by default, this one should be collapsed
			$("#" + $(this).attr("id") ).append("<span class='placeholder expand'></span>");
		}
		
		//what has the developer specified? collapsed or expanded?
		if ( $($(this)).hasClass("collapsed") ) {
			$("#" + $(this).attr("id") ).next().hide();
			$("#" + $(this).attr("id") ).children("span").removeClass("collapse").addClass("expand");
		}
		else {
			$("#" + $(this).attr("id") ).children("span").removeClass("expand").addClass("collapse");
		}

	
		if ( $.cookie($(this).attr("id")) == 'hide' ) {
			$("#" + $(this).attr("id") ).next().hide();
			$("#" + $(this).attr("id") ).children("span").removeClass("collapse").addClass("expand");
		}
		else if ( $.cookie($(this).attr("id")) == 'show' ) {
			$("#" + $(this).attr("id") ).next().show();
			$("#" + $(this).attr("id") ).children(".placeholder").removeClass("expand").addClass("collapse");
		}
		

		idval++;
	});

};
allora questo è il mio esperimento:

Codice: Seleziona tutto

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it"> 
<head> 
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
	<script type='text/javascript' src="./js/jquery-1.4.2.min.js"></script>
	<script type='text/javascript' src="./js/jquery.cookie.js"></script>
	<script type='text/javascript' src="./js/jquery.collapsible.js"></script>
</head>
<body>
<table class="module ">
	<thead class="header">
		<tr>
		<th>Titolo</th>
		<th><a href="#">collegamento</a></th>
		</tr>
	</thead>
	<tbody class="content">
		<td>contenuto da chiudere</td>
	</tbody>
</table>
<script type='text/javascript'>
$(document).ready(function() {
	$.collapsible(".header");
});
</script>
</body>
</html>
funziona bene se non per il fatto che a causa di questo

Codice: Seleziona tutto

$(selector).click(function() {
		$(this).next().slideToggle('fast', function() {
			if ( $(this).is(":hidden") ) {
				$.cookie($(this).prev().attr("id"), 'hide');
				$(this).prev().children(".placeholder").removeClass("collapse").addClass("expand");
			}
			else {
				$.cookie($(this).prev().attr("id"), 'show');
				$(this).prev().children(".placeholder").removeClass("expand").addClass("collapse");
			}
		});
		return false;
	}).next();
il tag

Codice: Seleziona tutto

<a href="#">collegamento</a>
non funziona e quindi invece di effettuare il collegamento chiudere la tabella
e quindi se io volessi ad esempio creare un collegamento se si clicca sul titolo e invece chiudere la tabella se si clicca sul resto non è possibile D: come posso modificare il plugin per fare ciò?

Rispondi

Torna a “JavaScript”

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti