0

どうすればこれを機能させることができますか。

ターゲットの親が .form_contact_div の場合、 console.log('keep open form');

私が使用しているコードですが、(else if) 条件では機能しません。if と else でのみ機能します。

コード:

jQuery("body").click(function(e) {

    var target = jQuery(e.target);
    console.log(target);

    if(jQuery(target).parents('#contact-btn-div').length 
      && jQuery('#contact-btn-div').hasClass('close')) {
        console.log('keep open btn');
        jQuery("#form_contact_wrapper").animate({'left': '0px'});
        jQuery("#contact-btn-div").removeClass('close');
    }
    else if(jQuery(target).parent().is('.form_contact_div')) {
        console.log('keep open form');
        jQuery("#form_contact_wrapper").animate({'left': '0px'});
    }
    else{
        console.log('keep close');
        jQuery("#form_contact_wrapper").animate({'left': '-472px'});
        jQuery("#contact-btn-div").addClass('close');
    }
});
4

2 に答える 2

0

e.target をのように置き換えてみてください

var target = $(this);

クリックされた要素をターゲットとして取得する必要があるため、これを使用する方が適切であり、コードは次のようになります

jQuery("body").click(function(e) {

    var target = $(this);
    console.log(target);

    if(target.parent('#contact-btn-div').length 
      && jQuery('#contact-btn-div').hasClass('close')) {
        console.log('keep open btn');
        jQuery("#form_contact_wrapper").animate({'left': '0px'});
        jQuery("#contact-btn-div").removeClass('close');
    }
    else if(target.parent().is('.form_contact_div')) {
        console.log('keep open form');
        jQuery("#form_contact_wrapper").animate({'left': '0px'});
    }
    else{
        console.log('keep close');
        jQuery("#form_contact_wrapper").animate({'left': '-472px'});
        jQuery("#contact-btn-div").addClass('close');
   }
});
于 2013-06-06T05:03:25.453 に答える
0

編集したコードを確認します。

<div id="contact-btn-div" class="close" style="width:300px; height:200px; border:1px solid #666; background-color:#F60;">

<div style="width:200px; height:100px; border:1px solid #0FC; background-color:#9CC;"></div>
</div>

そしてJavascript、

$(function(){
$("body").click(function(e) {

var target = $(e.target);
console.log(target);

if(target.parent('#contact-btn-div').length 
  && $('#contact-btn-div').hasClass('close')) {
    console.log('keep open btn');
    $("#contact-btn-div").removeClass('close');
}

});
});

必要なものは手に入ると思います。乾杯 :)。

于 2013-06-06T05:29:43.117 に答える