2

私の最後の質問はここでした:最後にクリックされたアイテムIDを取得し、良い答えがありましたが、まだ問題があります。

私はこのような機能を持っています:

$(document).ready(function () {
      $("*").click(function () {             
          alert($(this).attr('id').toString());                
    });
});

そして、ページには次のようなものがあります:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<script language="javascript" src="Scripts/jquery-1.4.1.js" type="text/javascript"><script>
<div id="div1">Some stuff
  <div id="div2">Some other stuff
  <asp:Button ID="Button1" runat="server" Text="Button" />        
    <div id="div3">More stuff
    <asp:Button ID="Button2" runat="server" Text="Button" />        
    </div>
 </div>        

Alertbox が表示されたら、クリックした項目の値を次のように保存できます。

$(document).ready(function () {
  $("*").click(function (e) {             
      alert($(this).attr('id').toString());  
      var value = $(this).attr('id').toString();                
      e.stopPropagation();  //Stop Propagation            
   });
});

しかし、ここに問題があります。伝播を停止すると、他のスクリプトが起動しなくなります。どうにかしてバブルの注文または ID を取得できますか? このようなことはできますか?:

  $(document).ready(function () {
     $("*").click(function (e) {    
       if(e.target == this[0])
       {         
         alert($(this).attr('id').toString()); 
         var value = $(this)[0].attr('id').toString();             
       }
       //e.stopPropagation();  //I have to get first value from bubbling without stopPropagation     
 });
});

ありがとう!

4

2 に答える 2

0

ところで、なぜそれだけではないのですか

$(document).ready(function(){
    var clicked;

    $('body').click(function(ev){
       clicked = ev.target.id;
    });
});
于 2012-11-19T14:51:21.220 に答える
0

次のソリューションを試すことができます。完璧なソリューションではなく、少しハックですが機能します。要件に応じて微調整できます -JSFIDDLE IS HERE

var clickArr = [], counter = 0;
$(document).ready(function () {
 $("*").click(function (e) {             

  if($(this).attr('id')) {      
  var val = $(this).attr('id').toString();
  clickArr[counter++] = val;
  }
  if(this.tagName == 'BODY') {
   val = clickArr[0];
   counter = 0;
   alert('result is ' + val);
  }
  //e.stopPropagation();  //Stop Propagation            
});
});​

それが役に立てば幸い !!

于 2012-11-19T14:20:30.593 に答える