所以我有一段代码可以将某些内容添加到网页中,这些元素是从JSON
文件(JSONP
)调用的。
这是调用JSON
文件的代码:
<script>
$(document).ready(function() {
(function($) {
var key= "12345";
var url = 'http://www.example.com/json.php?callback=?&auth=' + key + '';
var that = $(this);
$.ajax({
type: 'GET',
url: url,
async: false,
jsonpCallback: 'jsonCallback',
contentType: "application/json",
dataType: 'jsonp',
success: function(json) {
$( "head" ).append(json.csBlock[0].pre);
$( "head" ).append(json.csBlock[0].markup);
$( "body" ).append(json.csBlock[0].div);
$( "body" ).append(json.csBlock[0].script);
$( "body" ).append(json.csBlock[0].frame);
},
error: function(e) {
console.log(e.message);
}
});
})(jQuery);
});
</script>
事情是......当我使用它时会说:
Uncaught TypeError: Cannot read property 'click' of null
这是因为我打电话给$( "body" ).append(json.csBlock[0].script);
。其中包含JSON
文件中的以下代码:
"script": "<script>$('.wblongbar').click(function(e) { if($('.wbiFrame').hasClass('slide-up')) {$('.wbiFrame').addClass('slide-down', 200); $('.wblongbar').addClass('slide-downlongbar', 200); $('.wbiFrame').removeClass('slide-up'); $('.wblongbar').removeClass('slide-uplongbar'); } else {$('.wbiFrame').removeClass('slide-down'); $('.wblongbar').removeClass('slide-downlongbar'); $('.wbiFrame').addClass('slide-up', 200); $('.wblongbar').addClass('slide-uplongbar', 200); }});</script>",
如您所见,我使用的.wblongbar
包含在$( "body" ).append(json.csBlock[0].div);
脚本无法“找到”.wblongbar div
那么,如果没有不找到.wblongbar
,我会以何种方式添加此脚本?
我试图改变代码的顺序但什么也没做。
答案 0 :(得分:1)
删除脚本中的所有空格或要追加的任何元素。将所有数据附加为单个字符串。