【问题标题】:jquery .html(...) changes unchanged?jquery .html(...) 更改不变?
【发布时间】:2011-11-17 14:04:42
【问题描述】:

我正在尝试使用.html()A 标记内进行更改,然后将其改为ui-button。更改没问题,但是当我在刚刚修改的链接中调用.button 时,更改丢失了。

看到这个jsfiddle

我认为问题在于新的内部 html 没有完全呈现,.button 函数使用旧的内部 html 对代码进行更改,将其恢复到调用 html() 之前的值。

我试过this,但没有用。可以看here

我知道我可以解决它,但我想知道为什么会发生这种情况,这是一个错误吗?

谢谢!

【问题讨论】:

  • 问题似乎出在$('#button').button({ icons: { primary: 'ui-icon-folder-open'} });。这里可能是语法错误。

标签: jquery jquery-ui


【解决方案1】:

试试这个

   $('#button').button({ icons: { primary: 'ui-icon-folder-open'} });
   $('#textChanger').click(
    function (){
        $('#button').button({
                              label: 'new text',
                              icons: {primary: 'ui-icon-custom', secondary: null}
                           });
        return false;
    })

here 是工作小提琴

【讨论】:

  • 谢谢,我不知道.button 有设置内部html 的选项。尽管你还没有回答我原来的问题,我会给你接受的。这是 jquery 的.html 中的错误吗?而且你知道这是否发生在与.button不同的其他方法上?再次感谢
【解决方案2】:

正如您所说,文本的按钮对象持久性与原始元素内容之间存在差异,但是您可以通过.button 更改标题;

 $('#button').button({ icons: { primary: 'ui-icon-folder-open'}, label: "new text" });

但是由于按钮已经被更好地创建;

 $('#button').button("option", "label", "new text");

【讨论】:

  • 我已将 user1008575 的答案标记为已接受,因为他比你早一分钟回答了......但非常感谢,我正在使用你的代码。还有……你知道为什么会这样吗?这是一个错误吗?
  • 控件可能必须独立于 html 来跟踪标签,例如,如果您使用图标,则其 html 也是 button.html() 的一部分,因此覆盖它会破坏图像
  • 是的,我知道.html(..) 破坏了按钮图像(以及“A”标签内的任何其他代码),但是在.html(..) 之后的.button() 调用应该将更改为新代码,但它使用旧代码,女巫必须 ¿缓存?某处...问题是:从哪里获取.button() 元素内的代码来更改它?以及为什么.html() 不会更改该代码...似乎当我将答案标记为已接受时,没有更多人会来这里为这个主题提供一些启发..
  • 更新 html 可以改变按钮,但这不是它的设计方式,他们不希望你弄乱按钮内部 html,所以他们保留原始文本,以及对它的所有后续更改,在内部 label 属性中; jsfiddle.net/hDysR/9
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多