html - 在 JSON 内容加载之前设置的内联元素的宽度

标签 html css ajax

我对内联元素有疑问,特别是 <a>元素。具体如下:

<a class="text></a>

.text{
display:inline-block;
background:red;
padding:5px
}

问题是我用 JSON 加载了它包含的文本。现在我希望它的背景是文本的长度,但问题是 html 加载然后 json 加载所以它不会获取文本的长度。我可以设置一个固定的宽度,但我宁愿它是文本的大小。我有什么选择吗?谢谢!

编辑:Chrome 似乎比任何其他浏览器都更容易引起问题。

Javascript:

$(document).ready(function() {
var data;
function loadContent(){ 
    $.ajax({
        url: "json/content.json",
        data: "nocache=" + Math.random(),
        type: "GET",
        contentType: "application/json",
        dataType: "json",
        success: function(source){
            data = source;
            showInfo();
        },
        error: function(data){
            alert("Failed to load content");
        }
    }); 

}

loadContent();
    function showInfo(){
        $(".text").html(data[lang]['startpage']['text']);
}
});

最佳答案

如果这会解决您的问题,我不是 100%,但尝试这样做,通过 source进入函数而不是使用你的(未声明的)data变量。

$(document).ready(function() {

function loadContent(){ 
    $.ajax({
        url: "json/content.json",
        data: "nocache=" + Math.random(),
        type: "GET",
        contentType: "application/json",
        dataType: "json",
        success: showInfo,
        error: function(data){
            alert("Failed to load content");
        }
    }); 

}

loadContent();

function showInfo(data){
    $(".text").html(data[lang]['startpage']['text']);
}
});

更新

要让所有的 div 在同一行更改 #game-nav来自 inlineinline-block .

#game-nav li {
    display: inline-block;
}

display:inline元素(如 <b><span> 换行,这不是您想要的,内联 block 可以换行到新行,但它们不会中断中间单词。

关于html - 在 JSON 内容加载之前设置的内联元素的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15657359/

相关文章:

Javascript 未正确将变量传递给 Modal

javascript - AngularJS:如何在 ngView 上为每个元素放置输入动画

jquery 单击链接是否已将样式应用于链接并显示元素?

javascript - POST - 发布时 - Jquery - 不是 AJAX

JavaScript - 无法分配给循环中的变量

html - 在链接中定位图像

javascript - jQuery 中用于 ID 的正则表达式

jquery - 无法将 Jquery 垂直 slider 的大小保持在与其旁边的图片相同的高度

jquery - 在移动设备上修复整个 HTML 页面

javascript - 使用 AJAX 使用从 mysql 数据库中提取的数据填充表单