2014-11-14 23 views
2

好的,我在這方面做了大量的搜索,沒有任何工作。我沒有得到任何有用的答案,所以我想很多人遇到這個問題,但無法弄清楚。(已解決/請參閱我的答案中的解決方案)動態添加的HTML上的Hammer.js事件

我有這樣的HTML結構:

<div id="snaps"> 
    <div class="snap_item"> 
     <div class="snap_item_following_info"> 
      <img class="snap_item_following_img" src="res/stat/img/user/profile/small/1.fw.png" alt="@JohnDoe" /> 
      <a class="snap_item_following_name" href="#">@JohnDoe</a> 
     </div> 
     <img class="snap_img" src="res/stat/img/user/snap/43/2.fw.png" alt="@ErolSimsir" /> 
     <div class="like_heart"></div> 
     <div class="snap_info"> 
      <div class="snap_text"> 
       Image caption 
        <a class="snap_text_hashtah" href="@">#LA_city_trip</a> 
      </div> 
      <div class="snap_sub_info"> 
       <span class="snap_time">56 minutes ago</span> 
       <div class="like inactive_like"> 
        <div class="like_icon"></div> 
        <div class="like_no_active">5477</div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

在div '#snaps' 是一個靜態的div,它包含所有被添加與JQuery的html的()函數 '.snap_item' 元素。所以,「.snap_item」元素被動態地添加到div‘#snaps’,像這樣:

<div id="snaps"><!-- static div that holds the dynamic elements --> 
    <div class="snap_item"><!-- dynamically added element --> 
     <img class="snap_img" src="..." alt="..." /><!-- when this element is double tapped, the event should be fired --> 
    </div> 
</div> 

當「.snap_img」用戶雙擊水龍頭,一些東西已經發生。元素'.snap_img'位於'.snap_item'元素中。

我至今是:

$('#snaps').find('.snap_item').hammer().on({ 
    doubletap : function(event){ 
     alert("doubletap!"); 
    } 
}); 

這並不在所有的工作。 on()函數應該允許我在動態添加的HTML上觸發事件,但此代碼不起作用。我有這個代碼this SO question

我已經包含了hammer.js,jquery_hammer_plugin.js和query.specialevent.hammer.js。所以所有必要的JS文件已經包含在內,但仍然沒有運氣。

我該如何做這項工作?

提前致謝! :)

回答

5

好了,我已經使用此代碼解決了這個問題:

$('#snaps').hammer({domEvents:true}).on("doubletap", ".snap_img", function() { 
    alert("doubletap!"); 
}); 

所以,不管是誰具有撞錘觸摸事件的問題上動態添加HTML,這是解決方案! !

感謝大家誰(嘗試)幫助! :)

+0

非常好,我學到了一些新東西:-) – jyrkim 2014-11-16 10:07:27

+0

我在寫這段代碼後得到錯誤'Uncaught TypeError:$(...)。hammer不是一個函數' – 2016-12-01 07:33:07