0

我试图在使用按钮后立即更改它的图标。代码非常简单:

<a id='just-a-link' target="_blank" href="http://google.com">Google</a>

jQuery('#just-a-link').button().bind('click', function() {

    var icons = jQuery(this).button("option", "icons");
    icons.primary = 'ui-icon-plus';

    jQuery(this).button("option", "icons", icons);

});

但是 Internet Explorer 不会触发该链接。因此,单击链接确实会更改图标,但不会打开页面

你有什么建议来解决这个问题?

http://jsfiddle.net/YnwnU/

在小提琴中,您可以看到jQuery(this).button("option", "icons", icons);导致错误的原因是第二个按钮确实打开了链接。

4

1 回答 1

2

好吧,再看一遍之后,看起来因为你.button()在一个已经建立的调用内部.button()调用,它恰好正在杀死 -href- 或任何已经设置的事件处理程序。(在这种情况下打开一个新窗口和链接。

jQuery('#just-a-link').button().bind('click', function() {
    var icons = jQuery(this).button("option", "icons");
    icons.primary = 'ui-icon-plus';

    // Adding this makes it work in IE for at least the code you currently have
    window.open($(this).attr('href'));
});

在我看来,您更像是试图简单地向所有外部链接添加一个图标,然后在新窗口中打开它们。为什么不这样做

var icons = jQuery(this).button("option", "icons");
    icons.primary = 'ui-icon-plus';

jQuery('a[target="_blank"]').button().button("option", "icons", icons);

无需绑定单击...只需将所有锚点设置target="_blank"为按钮并为它们提供图标。这也使它在 IE 和其他浏览器中自动运行。搏一搏。

更新了 jsFiddle 演示

于 2012-08-30T15:13:49.207 回答