2016-05-30 12 views
1

私はjQuery dblclick()問題?

a)は、電子メールや
B)private_email

である2つの入力フィールドを持っていると私は警告メッセージ1を表示したいときに、ユーザのダブル電子メールフィールドをクリックし、2時にprivate_emailフィールド上のユーザーをダブルクリック。私は、次のjQueryコードを使用していますが、そののみ1警告メッセージに示すように:

のjQueryコード:

$(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

たぶんエラーが窓 'に存在しているされています。 open( 'mailto:<?php echo $ res [' email '];?>?subject ='、 '_self')) '。 – Blank

答えて

1

is()のいずれかをクリックしてそれに応じて実行する要素があるかどうかを確認してください。

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

    if($(this).is(email)) { 
     alert(1); 
     window.open('mailto:<?php echo $res['emailVal']; ?>?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

をIMHO 2つのDBLCLICKハンドラを持つことが容易になるだろう。それはあなたが別のイベントハンドラにあなたを持ってしたくない場合、あなたは電子メールのみの入力が

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

} 

空であるか否かを確認され、両方の入力のDBLCLICKイベントを聞いているにもかかわらず、あなたのコードでは、言われていますjQueryの

私はそれを達成するためにあなたのコードを変更した..あなたは、関連する入力ダブルクリックに基づいて1警告および2を表示したいと思います。..

IDの

$(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

のようなものをチェックしてみてください:

$(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

代わりに、要素のIDを取得することで、どの要素がイベントを発生させたかを確認できます。 ifステートメントでは、要素IDを確認して適切な処置を返すことができます。ここではここ

その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 
    } 
    }); 
}); 

を達成するためにどのようスニペットはjsfiddle for it