0

是否有理由在我的按钮button()上调用方法后从我的按钮中删除点击处理程序。我正在更改按钮的内容,因此我需要刷新它们。我注意到刷新不起作用,所以我尝试了该button方法。

这将重新设计我的“按钮”,但我失去了我的click活动。

我怎样才能做到这两点?

http://jsfiddle.net/RQZG8/2/

这是代码:

$("[data-role=button]").html("hello world").button();
$("[data-role=button]").click(function(){
    alert("i have been clicked");
});

我的大问题是我有一个div充当按钮的按钮。我想更改 的内容div,但我希望能够让它继续看起来像一个按钮,同时保持它的行为。

4

2 回答 2

1

试试这个:$("[data-role=button] .ui-btn-text").html("hello world");否则填充丢失。

于 2013-01-18T23:28:35.830 回答
1

首先div恕我直言,鉴于您的示例与问题相关(当您仅更改按钮的标题时),当 jQM 为您提供许多标准选择时,使用 a 作为按钮没有多大意义。

所有这些:

<button>Button element</button>
<input type="button" value="Button" />
<input type="submit" value="Submit Button" />

将由jQM 自动增强为按钮,甚至无需指定data-role="button". 您当然可以使用链接作为按钮

<a href="index.html" data-role="button">Link button</a>

现在,如果您仍想将您的div用作按钮,则无需指定data-role="button"仅调用button()插件。这将为您创建所有必要的标记,并且您的原始 div 将被保留为隐藏。

<div id="button1">By button<div>
$("div#button1").button();

要在更改标题后刷新按钮,您需要调用refresh方法:

$("div#button1").html("Hello World").button("refresh");

现在要正常处理特定按钮的单击事件(如果它不是页面上唯一的按钮),您可能需要比data-role=button属性更具体的选择器。id将是完美的。所以而不是

$("[data-role=button]").click(function(){...});

$("div#button1").click(function(){...});

最后,您肯定知道这一点,但我没有在您的 jsfiddle 中看到它,所以我只是提到您最好将代码放在 jQM 页面处理程序之一中。pageinit是推荐的方式。

$(document).on("pageinit", "#page1", function(){
    ...
});

是jsFiddle。

于 2013-01-19T05:52:27.233 回答