2016-05-30 9 views
1

Ich habe 2 Eingabefelder, diejQuery dblclick() Problem?

a) E-Mail und
b) private_email

und ich möchte Nachricht 1 Alarm zeigen, wenn der Benutzer einen Doppelklick auf E-Mail-Feld und 2, wenn der Benutzer einen Doppelklick auf private_email Feld . Damit ich folgenden jQuery-Code verwenden aber es ist nur 1 in Alarmmeldung zeigt:

jQuery-Code:

$(document).ready(function(){ 
    $("input#email, input#email_private").dblclick(function(){ 
    var email = $("input#email").val(); 
    var private_email = $("input#email_private").val(); 
    var cdid = $("#cdid_hidden").val();  
    var cid=$('#cdid_hidden').val(); 

    if(email) { 
     alert(1); 
     window.open('mailto:<?php echo $res['email']; ?>?subject=', '_self'); 
    } else { 
     window.open('mailto:<?php echo $res['email_private']; ?>?subject=', '_self'); 
     alert(2); 

    }  

    var url = "response.php?confirmEmail=confirm&cdid="+cdid; 
    $.get(url); 
    getDetails(cid);  

    }); 
}); 
+0

Vielleicht gibt es Fehler in 'Fenster existierte. Öffnen ('mailto: ? subject =', '_self'); '. – Blank

Antwort

1

Überprüfen Sie einfach, ob das Element, das geklickt wird is() oder das andere, und führen Sie entsprechend aus.

0

IMHO wäre es einfacher, zwei dblclick Handler zu haben. Aber sagte, dass in Ihrem Code, auch wenn Sie auf das dblclick Ereignis beiden Eingänge hören Sie nur überprüft, ob der E-Mail-Eingang leer

if(email) { 
    alert(1); 
    window.open('mailto:<?php echo $res['email']; ?>?subject=', '_self'); 
} else { 
    window.open('mailto:<?php echo $res['email_private']; ?>?subject=', '_self'); 
    alert(2); 

} 

Wenn Sie wollen Sie keine separaten Event-Handler könnte versuchen, für die ID so etwas wie

$(document).ready(function(){ 
    $("input#email, input#email_private").dblclick(function(){ 
    var email = $("input#email").val(); 
    var private_email = $("input#email_private").val(); 
    var cdid = $("#cdid_hidden").val();  
    var cid=$('#cdid_hidden').val(); 
    var clicked = $(this).attr('id'); 
    if(clicked == 'email') { 
     alert(1); 
     window.open('mailto:<?php echo $res['email']; ?>?subject=', '_self'); 
    } else { 
     window.open('mailto:<?php echo $res['email_private']; ?>?subject=', '_self'); 
     alert(2); 

    }  

    var url = "response.php?confirmEmail=confirm&cdid="+cdid; 
    $.get(url); 
    getDetails(cid);  

    }); 
}); 
0

Überprüfung ich Sie auf dem zugehörigen Eingang Doppelklick auf 1 und 2 basiert zeigen Alarm erraten wollen .. ich Ihren Code um das zu erreichen geändert haben ..

JQuery:

$(document).ready(function(){ 
    $("input#email, input#email_private").dblclick(function(){ 

    var private_email = $("input#email_private").val(); 
    var cdid = $("#cdid_hidden").val();  
    var cid=$('#cdid_hidden').val(); 

    if($(this).attr('id') == 'email') { 
    alert(1); 
    window.open('mailto:<?php echo $res['email']; ?>?subject=', '_self'); 
    } else { 
    window.open('mailto:<?php echo $res['email_private']; ?>?subject=', '_self'); 
    alert(2); 
    }  

var url = "response.php?confirmEmail=confirm&cdid="+cdid; 
$.get(url); 
getDetails(cid);  
}); 
}); 
0

Sie können stattdessen einfach überprüfen, welches Element das Ereignis ausgelöst hat, indem Sie die ID des Elements abrufen. Dann können Sie in der if-Anweisung die Element-ID überprüfen und die entsprechende Aktion zurückgeben. Hier ein Ausschnitt ist, wie dieser Code

HTML

<div> 
    <input type="text" placeholder="Email here" id="email" /> 
</div> 
<div> 
    <input type="text" placeholder="Email Private here" id="email_private" /> 
</div> 

JQUERY CODE

$(document).ready(function() { 
$('input#email, input#email_private').dblclick(function (event) { 
    alert("Double clicked"); 

    if (event.target.id === 'email') { 
     alert("Email double clicked"); 
     // Email textbox triggered the event 
     // Do something 
    } 
    else if (event.target.id == 'email_private') { 
     alert("Email Private double clicked"); 
     // Email private triggeredd this event, do something here 
    } 
    }); 
}); 

hier zu tun ist ein jsfiddle for it