javascript - jQuery .html() 不执行嵌入的 jquery

标签 javascript jquery ajax

我已经浏览了堆栈溢出和 Google 中的大部分问题,并尝试了一堆代码,但似乎仍然无法让我的代码工作!

所以我想做的是通过 Ajax 获取一些文本和脚本并将它们插入到 div 中,但是,内联 jQuery 似乎不起作用。文本可能很长,所以我想做的是添加文本预览,当用户单击“查看更多”链接时,jQuery 会切换较长的文本以显示和隐藏预览。

这是我将文本插入文档的代码;

从 Ajax 返回的 JSON

if (resp['marker'].length > 0) {
     htmltext = '<h5>Markers<a class="pull-right" onclick="seeall(\'marker\')">See all</a></h5><hr>';
     for (var i = 0; i < resp['marker'].length; i++) {
          htmltext += '<p><a>'+resp['marker'][i]['title']+'<a class="label label-warning"> > Go to marker</a></a></p>';
          htmltext += '<p id="marker-prev'+i+'"><span>'+resp['marker'][i]['advertisement'].substring(0,50)+'</span><a onclick="$(\'#marker-all'+i+'\').toggle();$(\'#marker-prev'+i+'\').toggle()"> More </a></p>';
          htmltext += '<p style="display:none" id="marker-all'+i+'"><span>'+resp['marker'][i]['advertisement']+'</span><a onclick="$(\'#marker-all'+i+'\').toggle();$(\'#marker-prev'+i+'\').toggle()"> Less </a></p>';
          htmltext += '<p><span>'+resp['marker'][i]['catagory']+'</span></p>';
     }
     htmltext += '<hr>';
     $('#markerssr').show();
     $('#markerssr').html(htmltext);
}

有趣的是,往下几行,这段代码就可以工作了;

从 Ajax 调用返回的 JSON

if (resp['corp'].length > 0) {
    htmltext = '<h5>Businesses<a class="pull-right" onclick="seeall(\'corp\')">See all</a></h5><hr>';
    for (var i = 0; i < resp['corp'].length; i++) {
        htmltext += '<p><a>'+resp['corp'][i]['name']+'</a><a class="label label-warning"> > Go to business</a></p>'
        htmltext += '<p id="corp-prev"><span>'+resp['corp'][i]['description'].substring(0,50)+'</span><a onclick="$(\'#corp-all\').toggle();$(\'#corp-prev\').toggle()"> More </a></p>';
        htmltext += '<p style="display:none" id="corp-all"><span>'+resp['corp'][i]['description']+'</span><a onclick="$(\'#corp-all\').toggle();$(\'#corp-prev\').toggle()"> Less </a></p>';
        htmltext += '<p><span>'+resp['corp'][i]['address']+'</span><span>'+resp['corp'][i]['email']+'</span></p> ';
   }   
   htmltext += '<hr>';
   $('#businessessr').show(); 
   $('#businessessr').html(htmltext); 
}

抱歉,我的代码格式很糟糕,但我已经在截止日期前了。

最佳答案

我看到的第一件事(但这可能不是什么新鲜事)是,在内联 jQuery 中调用了不同的 ID。

$(\'#marker-all\').toggle() VS $(\'#corp-prev\').toggle().

另外,您确定页面上只有 1 个#marker-all 吗? jQuery 在找到第一个 ID 后将停止搜索。

当您在浏览器控制台中运行以下代码时:

$('#marker-all').length

输出1吗?还是0?

关于javascript - jQuery .html() 不执行嵌入的 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28131894/

相关文章:

javascript - 简单关卡,选择DOM中的元素,优化,创建方法函数

javascript - Gulp + JS 库 + JSON 数据

jquery - 选择所有 li,但不选择子项

javascript - 使用 snap.svg 无限旋转

jquery - li点击事件不工作

javascript - 重新初始化数据表

jquery - session 超时是否在每个请求时重置

javascript - 主体标签上的位置和缩放元素,背景大小设置为包含

php - 如何从 php 获取循环数组到 AJAX

javascript - 我如何解析 json 值并将 id 放入变量中