【问题标题】:How to know which element was clicked如何知道点击了哪个元素
【发布时间】:2012-04-18 20:36:11
【问题描述】:

我有这个代码:

( function() {
  var i, ii, e = Elements.Select('.drop');
  for ( i = 0, ii = e.length; i < ii; i++ ) {
    e [ i ].onclick = function () {
      alert ( e [ i ].getAttribute('data-open') );
    }
  }
})();

我所做的是,当单击具有 className 'drop' 的元素时,会提醒我单击的元素的属性。但是没用。

这段代码是我用来通过她的类名选择一个元素的代码。 不要太在意,它只是向我们展示,只是向他们展示我是如何选择元素的。

(function() {
  Select : function ( element ) { 
  var object, index  = element.substr( 0, 1 ), name = element.substr( 1, element.length ),      clases = [ ], i, all = document.body.getElementsByTagName("*"); 
  switch ( index ) { 
    case '.' : 
      for ( i = 0; i < all.length; i ++ ) { 
        if ( all [ i ].className == name ) {   
          clases.push( all [ i ] ); 
        } 
      } 
      object = clases; 
    break;  
    return object 
    } 
  } 
})();

¿答案?

【问题讨论】:

    标签: javascript dom onclick classname


    【解决方案1】:

    你可以使用 jquery 来做这个。这里,'this' 关键字为你提供了当前被点击的元素。此函数在类名为“drop”的任何元素的单击事件上触发。

    $(".drop").click( function(){
       var x=$(this).attr("data-open");
    });
    

    【讨论】:

    • 你能帮我用 JQuery 吗?
    • 我不能 100% 确定我在 Javascript 中执行此操作的方法是否有效,但也会尝试使用该方法为您提供解决方案..
    • 即使使用 jQuery,上面的代码也无法运行。使用 POJS this.getAttribute('data-open') 或使用 jQuery $(this).attr('data-open')
    【解决方案2】:
    ( function() {
      var i, ii, e = Elements.Select('.drop');
      for ( i = 0, ii = e.length; i < ii; i++ ) {
        e [ i ].onclick = function () {
          //by the time that this gets executed, the for loop is ended, thus i equals ii
          // instead of using e[i]... try using this : 
          alert (this.getAttribute('data-open'));
          alert ( e [ i ].getAttribute('data-open') );
        }
      }
    })();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多