2012-04-22 118 views
1

你好,我已經看到了類似的帖子,但沒有回答我要完成 我做這裏的樣本 http://jsfiddle.net/edgardo400/R6rVJ/獲得子元素的ID時,父被點擊

而當點擊發生在父我基本上想要的是什麼你的孩子 的ID,並將其存儲在一個變量,所以我可以傳遞變量currentID到下面的代碼,否則我將不得不復制這些代碼9次從BOX1每個ID BOX9

jQuery(currentID).delegate("a", "hover", function(event){ 

     var $img = jQuery(this).parent("li").find('img'); 
     var image = jQuery(this).attr('data-img'); 
     jQuery('.defaultimg').stop(true, true).fadeOut(); 
     if(event.type === 'mouseenter') { 

      if($img.length){ 
       $img.show(); 

      }else{ 
       jQuery(this).parent("li").append('<img id="theImg" src="' + image + '" />'); 
      } 

     }else{ 
      if($img){ 
       $img.hide(); 
      } 
      jQuery('.defaultimg').stop(true, true).fadeIn(); 
     } 
    }); 
}); 
+0

如果點擊事件發生在子元素的邊界之外,那麼這個系統應該如何決定要顯示哪個孩子ID? – 2012-04-22 17:09:33

+1

你知道嗎,你只需要以長格式編寫'jQuery'一次?通過將代碼封裝在'(function($){....})(jQuery);'中,無論是否使用了noConflict,都可以使用'$'。 – ThiefMaster 2012-04-22 17:12:55

+0

對不起,如果不清楚系統會知道,因爲它是點擊的孩子我只是想系統告訴我什麼孩子被點擊的ID,並從那裏做基於該ID的事件 我在這裏有一個工作模式很好當我說這個ID反正 http://testdomain.edgardoroldanonline.com/apple-power/ 你可以看到它在中毒控制工作 – 2012-04-22 17:23:38

回答

5
$('#boxes').on('click', function(e) { 
    var currentID = e.target.id; 
    console.log(currentID); 

......rest of code 
+0

我以前試過,它給了我的父母的ID ...我想要的是,當孩子是點擊jquery獲取它的id,然後用它來執行fadeouts和使用該id的所有內容 – 2012-04-22 17:26:49

+1

那麼,你嘗試了它錯誤:-)似乎爲我工作,它給出了單擊框的ID [FIDDLE](http ://jsfiddle.net/adeneo/R6rVJ/1/),至於其他代碼,我無法猜測它應該是什麼樣子,因爲它在你的小提琴中缺少。 – adeneo 2012-04-22 17:31:25

+0

我看着你的小提琴,我看到console.log仍然存在,但我不能看到它不顯示在螢火蟲中的id。我新來的小提琴你怎麼看?你會得到什麼標識,你會得到盒子或孩子ID box1例如 – 2012-04-22 17:35:34

1

如果你只希望讓你的代碼工作並在你的con上顯示唯一的文件夾名稱,你應該設置

jQuery('#boxes').bind('click', function(event) { 

    var currentID = jQuery(event.srcElement).attr('id'); 

    /* rest of your code */ 
}); 

你可能想要做一些輕鬆

jQuery('#boxes').children().bind('click', function() { 

    jQuery(this).delegate... 

}); 

雖然我不知道你爲什麼這樣做?

固定http://jsfiddle.net/nxTDA/

+0

我真的覺得顯示爲什麼我這樣做,你可以看到它在 http:///testdomain.edgardoroldanonline.com/apple-power/當你點擊中毒控制時,框出現,我希望當你懸停在任何ul項目時出現不同的圖像 http://jsfiddle.net/edgardo400/cham5 /新版本 到目前爲止它有工作的唯一方法編輯是放置id box1).delegate – 2012-04-22 17:10:06

+0

我只是好奇,因爲每個問題都有很多解決方案,如果他能從更大的角度看問題,有人會提出更好的解決方案。很公平。 – drinchev 2012-04-22 17:19:40

+0

它確定:D所以你認爲是什麼可以讓jquery存儲當它點擊的孩子的id時 – 2012-04-22 17:28:36

1

在javascript中它會是:

var a = document.getElementById('#boxes'); 
a.onclick = function(e){ 
    console.log(e.target.id); 
}