2016-05-01 35 views
0

在這個項目中工作我有按鈕,它有圖像裏面的樣式目的...我試圖實現的功能,當按鈕被點擊時,我使用event.target.parentNode.parentNode ... a在Firefox中我需要調用parentNode 4次,它在Chrome中工作,它不起作用,我需要調用parentNode 5次,這意味着兩個瀏覽器的次數從一個最頂層的父div取得HTML5數據屬性(postid)的次數指的是不同的父母。我添加了$(event.target).parent()。parent()。css('border','5px solid black');找出每個瀏覽器正在考慮的目標。我發現Chrome瀏覽器認爲event.target是圖像(這是實際點擊的圖像),但Firefox認爲該按鈕是event.target(這是事件實際連接的位置).....我怎樣才能使這個按鈕及其事件代碼可以在兩個瀏覽器上移動,而不需要刪除按鈕標籤(工作過的)中的圖像。event.target.parentNode ...在Chrome和Firefox中指向不同的父母?

代碼看起來像

$(document).on('click', '.opinion', function(event) { 
 

 
    try { 
 
    post_id = event.target.parentNode.parentNode.parentNode.parentNode.dataset['postid']; 
 
    //$(event.target).parent().parent().css('border','5px solid black'); 
 
    url = $('#opinionUrl' + post_id).val(); 
 
    token = $('#token').val(); 
 
    } catch (e) { 
 

 
    alert(e); 
 
    } 
 
///Some more code to do stuff 
 
});
<button class="icon opinion"> 
 
    <img class="icon" src="{{URL::asset('assets/icons/haha.png')}}"> 
 
</button>

回答

1

爲什麼使用jQuery和鏈parentNode.parent()

.closest()將做的工作適合你https://api.jquery.com/closest/

post_id = $(this).closest("[data-postid]").data().postid; 
+0

感謝,@Roko C.現在還在逐漸熟悉使用jQuery的一些核心功能...再次感謝! –

+0

:)不客氣! @ F.ENoelNfebe –

相關問題