我已经浏览了堆栈溢出和 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/