javascript - 当数据在 jquery 中动态加载时,单击事件不起作用

标签 javascript jquery html css

场景

  • 我需要当用户点击图片时,图片应该切换。(仅在页面未加载之前),比如着陆页。

  • 然后用户滚动浏览器(加载更多故事)然后点击图片不会触发。

  • 我遇到调试问题,发现我在类上使用了点击功能,因此当页面加载浏览器时,将类分配给 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>

fiddle :http://jsfiddle.net/o61rqj95/5/

问题

  • 我需要点击才能在渲染加载更多数据时正常工作。
  • 欢迎提出任何建议。
  • 点击仅在加载更多之前有效。

    我在谷歌搜索后找到的解决方案

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

    函数函数名(元素) { 警报(“测试”);

  • 然后 alert don"t works.

工作解决方案

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);

}

最佳答案

使用这个:

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

代替

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

关于javascript - 当数据在 jquery 中动态加载时,单击事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29372003/

相关文章:

JavaScript 放在顶部还是底部?

html - 标题元素中的换行符

html - R : Add CSS color coding in a HTML table

javascript - 如果需要,使用正则表达式向字符串添加前导斜杠和尾随斜杠

javascript - 如何从 Jquery UI 日期选择器中禁用特定日期

javascript - PLUpload 获取剩余文件?

javascript - 绘制虚线和直线作为div的背景

Javascript HTML Table 根据另一个单元格的 onclick 获取第一列的单元格值

php - 如何使用 $_POST 保存 contentEditable ="true"的 Div?

javascript - 如何使用Jquery在div中加载页面时显示进度条