1

私のコードの一部 (非常に広範囲なので、該当する部分のみを示します) には、次のようなものがあります。

$(".help."+help+" .left").click(function(event){
event.stopPropagation();
if (!moving){
  moving = 1;
  var move = $(".help."+help+" .all").css("left");
  move = parseInt(move.substr(0,move.length-2)) + 300;
  if (move <= 0)$(".help."+help+" .all").animate({left:move},{duration:300,complete:function(){moving = 0}})
  else moving = 0;
};
});

これevent.stopPropagation()は、これが呼び出されないようにするためのものです。

$("html").click(function(){
alert("check");
$(".help").each(function(){
  if ($(this).hasClass("open")){
    $(this).removeClass("open").animate({opacity:0},{duration:500,complete:function(){
      $(this).css("display","none");
    }});
  };
});
});

このセクションは、ドキュメント内のどこかをクリックして「ヘルプ ボックス」を閉じるためのものです。

ただし、event.stopPropagation()機能していません。alert("check")私はそれが問題であることを確認するためにそこに入れました。

奇妙な部分?この次のコード行は、次のように動作していevent.stopPropagation()ます:

$(".showhelp").click(function(event){
event.stopPropagation();
if ($(this).hasClass("materials"))help = "materials";
else help = "bearings";
if (!$(".help."+help).hasClass("open")){
  $(".help."+help).addClass("open").css("display","block").animate({opacity:1},200);
}else{
  $(".help."+help).removeClass("open").animate({opacity:0},{duration:200,complete:function(){
    $(this).css("display","none");
  }});
};
});

これで十分な情報だと思います。

4

1 に答える 1

1

私は問題が何であるかを理解しました。stopPropagation() とは何の関係もありませんでした。未定義の変数と関係がありました。

問題は解決しました。でも助けてくれてありがとう!

于 2013-10-22T20:04:55.313 に答える