【发布时间】:2014-10-08 09:22:32
【问题描述】:
我有以下JSfiddle。它只是在您更改选项卡时更改按钮的 id 和文本,然后当您单击它们时它只会显示警报。
我知道代码可以正常工作,因为在您更改选项卡之前,它可以按预期工作。但是,当您更改选项卡时,按钮的 id 已设置,但单击事件不会触发。
HTML
<div id="lineitems">
<div id="nav-wrapper">
<div id="topnav">
<ul>
<li><a href="#allocate">Awaiting Allocation</a></li>
<li><a href="#not-issued">Awaiting Issued</a></li>
<li><a href="#issued">Issued</a></li>
<span id="button-container">
<button id='allocate-parts' type='button' class="allocate">Allocate Selected Parts</button>
</span>
</ul>
</div>
</div>
<div id="allocate">Allocate tab</div>
<div id="not-issued">Awaiting Issued tab</div>
<div id="issued">Issued Items</div>
jQuery
$( "#lineitems" ).tabs();
$('button').button();
$("#lineitems").tabs({
activate: function (event, ui) {
issued = ui.newPanel.attr('id'); //Get newly selected tab
//alert("tabs "+issued);
switch(issued) {
case "allocate": var buttonText = "<button type='button' id='allocate-parts'>Allocate Selected Parts</button>"; $('#joblist').removeAttr("disabled"); $('button').prop('id','allocate-parts');
break;
case "not-issued": var buttonText = "<button type='button' id='issue-parts'>Issue Selected Parts</button>"; $('#joblist').removeAttr("disabled"); $('button').prop('id','issue-parts');
break;
case "issued": var buttonText = "<button type='button'>Return Selected Parts</button>"; $('#joblist').removeAttr("disabled");
} //End of switch
$('#button-container').html(buttonText);
$('button').button();
}
});
$('#allocate-parts').click(function() {
alert("Parts Allocated");
});
$('#issue-parts').click(function() {
alert("Parts Issued");
});
在标签更改时,我尝试更改 HTML 中的 id 并使用 $('button').prop('id','issue-parts')。但它们都不起作用。
【问题讨论】:
标签: javascript jquery jquery-ui jquery-ui-tabs