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

    interferenza tra onmousedown e click

    Come si capisce dal titolo, il mio problema è che l'evento onmousedown impedisce il funzionamento di un clic.
    I campi input-text e select della pagina non sono accessibili perchè tutto il documento subisce l'evento onmousedown. Evento che è necessario per la funzione di trascinamento di alcune immagini.
    Qualcuno ha suggerimenti?

  2. #2

    Posto il codice js

    var oDrag = null
    var drag = false
    var leave = false
    var oBasket,x,y
    var oPreso = null;

    var oJson=new Object()
    var oJsonIndex = 0

    oJson[0] = {src :"",alt:"",display: false}

    //for (n in oJson) { alert( n + ' | ' + oJson[n].Age + ':' + oJson[n].FirstName ) }


    function json_enum() {
    var cart_item = 0;
    for (n in oJson) {
    if (oJson[n].display) {
    cart_item += 1;
    alert( n + ' | ' + oJson[n].alt ) ;
    }
    }
    if ( cart_item == 0 ) {
    alert( "Il carrello è vuoto" );
    }
    }

    function mdown(e) {
    /*
    funzione per il riconoscimento dell'oggetto da grabbare
    */

    // compatibilità crossbrowser
    if (!e) var e = window.event;

    // grab elemento
    oDrag = (e.target) ? e.target : e.srcElement
    alert(oDrag.alt);
    // verifico se l'elemento è draggabile
    if ( oDrag.className=="drag" || oDrag.className=="es_immagine" ){

    //imposto il postizionamento relativo per permettere il drag
    oDrag.style.position = "relative"

    // imposto la modalità di drag
    drag = true

    // prendo le coordinate del mouse
    x = e.clientX
    y = e.clientY

    //abilito l'evento onmousemove e onmouseup
    document.onmousemove=mdrag_on
    document.onmouseup=mdrag_off
    }
    else {
    // esco dalla la modalità di drag
    drag = false
    oDrag = null
    }
    return false
    }


    function mdrag_on(e) {
    /*
    funzione di movimento
    */
    // compatibilità crossbrowser
    if (!e) var e = window.event;

    // se siamo in modalità di drag cambio le coordinate dell'elemento
    if (drag){
    oDrag.style.left = e.clientX -x
    oDrag.style.top = e.clientY -y
    }
    return false
    }

    function mdrag_off(e) {
    /*
    funzione di movimento
    */
    // compatibilità crossbrowser
    if (!e) var e = window.event;
    // esco dalla la modalità di drag
    drag = false
    leave = true

    try {
    // reimposto le coordinate iniziali
    oDrag.style.left = 0
    oDrag.style.top = 0
    } catch(z) { }
    }

    function mover(e) {
    /*
    funzione gestione destinazione_es
    onmouseover controllo se ho un elemento che stavo strascinando
    */
    // compatibilità crossbrowser
    if (!e) var e = window.event;
    // grab elemento
    oBasket = (e.target) ? e.target : e.srcElement

    //se ho un l'elemento draggabile , non trovo in modalità grab ,e sono sun destinazione_es
    try {
    if ( oDrag.className=="drag" && oBasket.className=="cella_es" && leave){
    oJsonIndex += 1
    oJson[oJsonIndex] = {title: oDrag.title , src: oDrag.src , alt: oDrag.alt , name: oDrag.name , display: true}

    var esercizio = "<div id='es'>";

    oBasket.innerHTML += esercizio;
    document.getElementById("sez_cestino").innerHTML = "Aggiunto
    esercizio " + oJson[oJsonIndex].name + "
    "
    oDrag = null
    }

    if ( oDrag.className=="es_immagine" && oBasket.className=="cestino" && leave){
    s = oDrag.parentNode.parentNode.parentNode.parentNode. parentNode;
    oJson.display = false
    oBasket.innerHTML = "L'esercizio " + document.getElementById(s.id).name + "
    è stato eliminato"
    document.getElementById(s.id).style.display='none'

    oDrag = null

    }
    } catch(z) { }
    leave = false
    return false
    }

    document.onmousedown=mdown
    document.onmouseover=mover

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.