2015-03-31 53 views
2

場景動態Click事件不能正常工作時的數據加載jQuery中

  • 我需要時,圖像的用戶點擊,圖像應進行切換。(只有前頁d「NT負載),說的着陸頁。

  • 然後用戶滾動瀏覽器(加載更多的故事),然後點擊圖像不會觸發。

  • 我有調試問題發現我已經在類上使用點擊功能,所以當頁面加載瀏覽器分配類的HTML(點擊作品)。

  • 然後滾動加載更多然後它瀏覽器不分配類來呈現HTML因此點擊w nt工作。

js代碼

var eventData = {}; 
$(document).ready(function(){ 

    if (localStorage.getItem('eventData') !== null) { 
    $.each(eventData = JSON.parse(localStorage.getItem('eventData')), function(id){ 
     $('#'+id).addClass('faved'); 
    }); 
    } 
    }); 
    $('.favourate_dextop').click(function(e){ 
    e.preventDefault(); 
    if (eventData[this.id] !== undefined) { 
     delete eventData[this.id]; 
    }else{ 
     eventData[this.id] = $(this).data(); 
    } 
    $(this).toggleClass('faved'); 
    localStorage.setItem('eventData', JSON.stringify(eventData)); 
    console.log(eventData); 
}); 

HTML代碼

 <div style="display:block; float:right; width:auto; color:#7c7c7c;"> 
      <a href="javascript:void(0);" class="favourate_dextop" title="Add to Favorites" id="fav'.$data[$k]['id'].'" 
      data-sess_id="'.$data[$k]['id'].'" 
      data-name="'.$name_event.'" 
      data-city="'.$event_city.'" 
      data-country="'.$event_country.'" 
      data-event_url="'.$event_urls.'" > 
      </a> 
      </div> 

小提琴:http://jsfiddle.net/o61rqj95/5/

問題

  • 我還需要點擊才能正常工作,當加載更多的數據已被渲染。
  • 任何建議是最受歡迎的。
  • 點擊才能加載更多。

    溶液I使用Google

    1. <a href="javascript:functionname(this);"> 
    
    2. in html file call function name. 
    

    功能使用functionName(項目) { 警報( 「測試」)後發現; }

  • 然後還警告不要「T作品

工作液

var eventData = {}; 
$(document).ready(function(){ 

if (localStorage.getItem('eventData') !== null) { 
    $.each(eventData = JSON.parse(localStorage.getItem('eventData')), function(id){ 
     $('#'+id).addClass('faved'); 
    }); 
} 
$('.favourate_dextop').on("click", function(e){ favorite(this); }); 

});

function favorite(item){ 
console.dir(item); 

    if (eventData[item.id] !== undefined) { 
     delete eventData[item.id]; 
    }else{ 
     eventData[item.id] = $(item).data(); 
    } 
    $(item).toggleClass('faved'); 
    localStorage.setItem('eventData', JSON.stringify(eventData)); 
    console.log(eventData); 

} 
+1

代表的點擊。 https://api.jquery.com/on/ – dowomenfart 2015-03-31 15:12:36

+0

您需要將事件綁定到目標元素,因爲它是動態加載的,這意味着初始頁面加載時,目標元素甚至不可用於DOM結構中 – Sai 2015-03-31 16:09:08

回答

1

使用此:

$('body').on('click','.favourate_dextop',function(e){ 
    //code 
}); 

而不是

$('.favourate_dextop').click(function(e){ 
//code 
});