layer插件layer.photos()動態插入的圖片無法正常顯示


layer插件layer.photos()動態插入的圖片無法正常顯示,點擊后面插入的圖片,顯示的是之前的圖片列表,再次點擊又是正常

 

有朋友遇到同樣的問題

http://fly.layui.com/jie/4124.html

layer v2.4 彈層組件
layer.photos動態插入圖片后,點擊新插入的圖片會彈出插入前的最后一張圖片。
如果再次調用layer.photos,點擊新圖片會提示錯誤:

layer.js:1006 Uncaught TypeError: Cannot read property 'src' of undefined

現在的解決辦法是在layer.js中的第902行的

loop || parent.on('click', options.img, function(){

改為

loop || parent.off('click').on('click', options.img, function(){

不知道有沒有什么更好的辦法可以解決動態插入圖片的問題。[思考]

 

 

 

我的解決辦法是:

點擊之前,先把圖片data數據弄好

把上面的代碼改成

     loop || parent.on('click', options.img, function(){
pushData();
var othis = $(this), index = othis.attr('layer-index'); layer.photos($.extend(options, { photos: { start: index, data: data, tab: options.tab }, full: options.full }), true); })

解決!!

這樣改后,無論是增加圖片,還是移除圖片,效果正常

 

使用tips:

1.如果需要重復執行layer.photos(),避免重復創建遮罩,可以加上id參數避免重復創建!

//調用示例
layer.photos({
  id: 'img',
  photos: '#layer-photos-demo'
  ,anim: 5 //0-6的選擇,指定彈出圖片動畫類型,默認隨機(請注意,3.0之前的版本用shift參數)
}); 

 

2. layer.photos(),options.photos參數最好使用頁面上存在DOM結構,因為是使用事件委托綁定的事件。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM