0

在我的 HTML 页面中,我想根据计数显示一定数量的按钮。所以我过去常常动态显示这些按钮。我写的脚

var html = "<a href='#' data-role='button' data-theme='b' data-inline='true'>Pay</a>";
$("#DivId").append(html);

但是样式不适用于按钮。当我尝试直接在 Div 标签中编写以下代码时,它工作正常

<a href='#' data-role='button' data-theme='b' data-inline='true'>Pay</a>

任何帮助?

4

3 回答 3

4

您必须允许 JQueryMobile 更新新添加的 DOM 元素。

http://jquerymobiledictionary.pl/faq.html

var html = "<a href='#' data-role='button' data-theme='b' data-inline='true'>Pay</a>";
$("#DivId").append(html).trigger('create');
于 2012-06-25T20:19:42.807 回答
1

您是否在$(document).ready()函数或其他东西上使用过 JavaScript 的样式?在这种情况下,您需要在执行$("#DivId").append(html);.

例子

你有这样的功能:

$(document).ready(function(){
    $('a[href="#modal"]').click(function(){
        alert("Modal");
    });
});

它在页面加载后在运行时执行。您正在动态插入另一个<a>具有相同内容的标签。例如:

$("#result").html('<a href="#modal">Modal Window</a>');

发生的情况是,这个 HTML 是在处理程序执行后插入的。因此,函数中启动的处理程序$(document).ready()不适用于此。因此,为了确保即使执行此操作,您也需要以这种方式重新初始化它:

$(document).ready(function(){
    loadPage();
});
function loadPage(){
    $('a[href="#modal"]').click(function(){
        alert("Modal");
    });
}
function something(){
    $("#result").html('<a href="#modal">Modal Window</a>');
    loadPage();
}

希望你明白吗?

于 2012-06-25T20:13:14.733 回答
0

答案是它应该工作。只要代码在 DOM 中正确输出(请参阅 Firebug 或其他检查器),CSS 就没有理由无法在它上面工作,而且很可能问题出在您尚未共享的 CSS 上。

于 2012-06-25T20:15:14.867 回答