有没有办法让jQuery Mobile将javascript生成的链接呈现为按钮小部件,就像它在加载页面时自动生成一样?
我有这样的javascript动态创建链接:
var ws=document.getElementById('workspace'); // empty <div id="workspace"></div>
ws.innerHTML='<a id="myb" href="foo.php" data-role="button">baz</a>';
当然它只生成普通链接而不是按钮,所以我的问题是如何让jQueryMobile动态创建按钮,就像在页面中出现相同的<a id="myb" href="foo.php" data-role="button">baz</a>
时一样一开始?
编辑:
这样的剧本:
$('#tagspace').html('<a id="myb" data-inline="true" data-ajax="false"
href="boo.php" data-role="button">baz</a>')
.button()
.click(function() { window.location.href=this.href;});
是一种改进。它 会产生一个按钮(整页宽度),并且对标签文本之外的点击很敏感。但是,this
似乎没有映射到包含预期链接“destination”的元素。
这样的DOM结果:
<div aria-disabled="false" class="ui-btn ui-shadow ui-btn-corner-all ui-fullsize
ui-btn-block ui-btn-up-c" data-mini="false" data-inline="false" data-theme="c" data-iconpos="" data-icon="" data-wrapperels="span" data-iconshadow="true" data-shadow="true" data-corners="true"> <span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">baz</span>
</span>
<div aria-disabled="false" class="ui-btn-hidden" id="tagspace"> <a id="myb" data-inline="true" data-ajax="false" href="boo.php" data-role="button">baz</a>
</div>
</div>
所以,它仍然不是同一种按钮。
答案 0 :(得分:1)
您可以通过将元素包装在jQuery对象中并调用button()
方法来创建按钮小部件。
$("#workspace").html("<a id='myb' href='foo.php' data-role='button'>baz</a>")
.button();
更新:按钮小部件会阻止链接的默认行为,因此如果您想要恢复该行为,则必须添加click
处理程序:
$("#workspace").html("<a id='myb' href='foo.php' data-role='button'>baz</a>")
.button()
.click(function() {
window.location.href = this.href;
});