Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    fermare evento dentro riga

    ciao a tutti..
    volevo chiedervi una cosa.
    Mi trovo ad avere una lista contenuta al'interno di una tabella.
    Questa tabella viene generata automaticamente da php in base al contenuto del db.
    Ogni riga ha un evento onclick che porta ad un'altra pagina.

    Per ogni riga c'e' anche un pulsante con anch'esso un evento onclick che, se premuto mi richiama la funzione "Confirm".
    Il problema e' che anche se l'utente preme "Cancel", viene preso l'evento della riga ignorando la scelta appena fatta.

    Qualcuno di voi sa per caso come sia possibile fermare l'evento onclick della riga ??

    Spero di essermi spiegato sufficientemente bene..

    Ciao
    Nulla è impossibile. Il difficile è trovare la soluzione che renda l'impossibile possibile...
    http://www.eternaldream.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ti sei spiegato a sufficienza, ma ci dev'essere un errore nel JS che usi.

    Posta il codice HTML di una riga tipo (ma non postare codice PHP - solo il codice ricevuto dal browser), ed eventuali funzioni JS richiamate dagli eventi.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Il codice di una riga che php mi restituisce e' il seguente:
    codice:
    <tr class="out" onmouseover="this.className='in';" onmouseout="this.className='out';" onclick="location.href='/phoenix/fornitori.php?choice=viewsingforn&amp;id=0039';">
    <td width="2%">[img]imgs/cancella.gif[/img].\nContinuare ?')) location.href='/phoenix/fornitori.php?choice=delete&amp;id=0039';" /></td>
    <td>Peter</td>
    <td>pippo</td>
    <td>0119188813</td>
    <td>http://www.ciccio.it</td>
    <td>ciccio@ciccio.it</td>
    </tr>
    Come vedi ci sono due eventi javascript ad albero.
    Uno per l'intera riga, ed uno per l'immagine al suo interno che dovrebbe eliminare quell'elemento.

    non ci sono errori javscript che il browser mi restituisce.

    Per il momento ti ringrazio

    Ciao
    Nulla è impossibile. Il difficile è trovare la soluzione che renda l'impossibile possibile...
    http://www.eternaldream.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    <tr class="out" onmouseover="this.className='in';" onmouseout="this.className='out';" onclick="location.href= '/phoenix/fornitori.php?choice=viewsingforn&id=0039';">

    <td width="2%">[img]imgs/cancella.gif[/img].\nContinuare ?')) location.href= '/phoenix/fornitori.php?choice=delete&id=0039';" /></td>

    Stai caricando il browser di tutta una serie di incombenze, che non credo riesca a svolgere in contemporanea. ...

    In che browser deve funzionare?
    Perche` ci sono delle particoalrita` che impediscono il corretto funzionamento in qualche browser.

    Io toglierei dal JS tutte le funzioni di formattazione, e le farei fare al CSS. Metterei un <a> attorno all'<img> per permetterne il funzionamento in tutti i browser e toglierei tutti quegli eventi contemporanei (lascerei solo l'onclick)

    Attenzione che l'oggetto location non e` definito a livello di document, devi precederlo da window.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Ti ringrazio per le segnalazioni riguardo la compatibilita'.
    Mi ero accorto di alcune inconguenze nel linguaggio, ma le ho ignorate dal momento che quesdto codice fara' parte di una applicazione che girera' soltanto su un computer locale e soltanto con la versione 6 di internet explorer.

    Infatti ho utilizzato altre funzionalita' specifiche per ie, proprio per consentire alcune opzioni che altrimenti non sarebbero stato possibile fare.

    Per quanto riguarda location, ho notato che funziona lo stesso..
    E' una modifica atta alla compatibilita' oppure a cosa ?

    Pensi ci sia una soluzione per fare quello di cui ho bisogno ? oppure devo trovare una via alternativa ?

    Ti ringrazio di nuovo per l'aiuto.
    Nulla è impossibile. Il difficile è trovare la soluzione che renda l'impossibile possibile...
    http://www.eternaldream.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Lascio la parola ai guru di IE. Io preferisco lavorare cross-browser, e tendo ad ignorare le specifiche orientate ad un solo browser.

    Sono peraltro convinto che tutti quegli eventi che si sovrappongono possano mandare in crisi qualsiasi browser.

    nel tag img tu usi:
    onmouseover
    onmouseout
    onmousedown
    onmouseup
    onclick

    onmousedown e onclick avvengono lo stesso momento: riesce il browser a servirli tutti e due? quale e` servito prima? Se serve prima onclick (che impiega molto perche` c'e` una richiesta utente) ha senso poi lo script richiamato da onmousedown?

    Altri eventi simultanei:
    onmouseover del td e del tr (idem per onmouseout): son necessari entrambi?

    Come vedi sono una serie di domande, cui non saprei rispondere (immagino che browser diversi rispondano in modo diverso); in tali casi la mia posizione e` semplificare, togliere eventi e lasciare solo quelli essenziali.

    Altra domanda: in IE6, onclick e` applicabile ad una <img>?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    nel tag img tu usi:
    onmouseover
    onmouseout
    onmousedown
    onmouseup
    onclick

    onmousedown e onclick avvengono lo stesso momento: riesce il browser a servirli tutti e due? quale e` servito prima? Se serve prima onclick (che impiega molto perche` c'e` una richiesta utente) ha senso poi lo script richiamato da onmousedown?
    Bhe come tu sai, ogni evento ha una funzione specifica, benche' sembra che non abbia alcun effetto e che uno possa essere l'esatta copia dell'altra. Ma c'e' una piccola differenza tra onmousedown e onclick. Onmousedown risponde a tutti gli enventi generati con la pressione nel tasto del mouse, mentre onclick viene generato al rilascio del mouse (una sorta di onmouseup). Infatti se noti, nella realizzazione di un pulsante classico per windows, al passaggio del mouse sopra la classica X (per chiudere la finestra) avviene l'onmouseover, quando esce "onmouseout", quando ci si clicca sopra si genere l'onmousedown che, se rilasciato nella stessa area chiude la finestra, ma se il mouse esce dall'area dove e' stato effettuato il click senza essere rilasciato, l'evento click non si genera, ma il colore del tasto cambia, tornando allo stato originale. IE come firefox servono (se non vado errato) prima l'evento onmousedown se e' presente, per poi servire l'onclick di conseguenza se il tasto viene rilasciato nella stessa area.

    onmouseover del td e del tr (idem per onmouseout): son necessari entrambi?
    Purtroppo per quello di cui ho bisogno io si.
    gli eventi nel tr (onmouseover e onmouseup) mi servono per cambiare il colore della riga quando l'utente ci passa sopra con il mouse, mentre gli eventi legati all'immagine sono necessari (necessario e' una parola grossa) per dargli le azioni di un classico pulsante windows. Essendo che l'immagine e' piccola e che l'applicazione girera' soltanto in locale, non si notera' minimamente il ritardo nel cambio immagine generando cosi' un effetto del tutto simile a quello dei pulsanti di windows.

    Altra domanda: in IE6, onclick e` applicabile ad una <img>?
    Che io sappia si, anche perche' in questa applicazione lo utilizzo e sembra funzioni egregiamente.

    Spero di aver risposto a tutte le tue domande in modo esaustivo.

    Purtroppo come ti dicevo, essendo l'immagine del bottone dentro la riga, ie li gestisce come eventi completamente separati, quindi non mi permette di interrompere un evento generato in un'altro elemento (ossia l'onclick nella riga).

    Nulla è impossibile. Il difficile è trovare la soluzione che renda l'impossibile possibile...
    http://www.eternaldream.it

  8. #8
    ho bypassato il problema.
    Ho fatto che eliminare l'onclick dall'intera riga e l'ho inserita in ogni cella escusa la prima, ossia quella contenente l'immagine.

    Soluzione poco professionale ma al momento e' la piu' veloce che mi sia passata per la testa.

    Grazie del supporto Mich_.

    Ciao
    Nulla è impossibile. Il difficile è trovare la soluzione che renda l'impossibile possibile...
    http://www.eternaldream.it

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non so se ti potrà essere utile....

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    function cancel() {
     srcElem = event.srcElement;
     if (srcElem.tagName == 'INPUT' && srcElem.type=='button') {
      if (srcElem.name.substr(0,3) == "btn") {
       srcElem.click();
    	 return;
      } // if (srcElem.name.substr(0,3) == "btn")
     } // if (srcElem.tagName == 'INPUT' && srcElem.type=='button')
     alert('cancel');
    } // function cancel() 
    
    function pippo(anObj) {
     alert(anObj.name);
    }
    //-->
    </script>
    
    </head>
    <body>
    <table summary="" border="1">
    <tr onclick="cancel()">
    <td><input name="btn001" type="button" value="clicca" onclick="pippo(this)"></td>
    <td><input name="btn002" type="button" value="clicca" onclick="pippo(this)"></td>
    <td><input name="btn003" type="button" value="clicca" onclick="pippo(this)"></td>
    <td><input name="btn004" type="button" value="clicca" onclick="pippo(this)"></td>
    <td>CLICCA QUI</td>
    
    </tr>
    </table>
    </body>
    </html>

  10. #10
    ti ringrazio badaze.

    Ho risolto il tutto. !

    Grazie ancora.

    ciao
    Nulla è impossibile. Il difficile è trovare la soluzione che renda l'impossibile possibile...
    http://www.eternaldream.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.