我需要根据" aria-selected"选择一个li
元素。在插件初始化之后受该元素影响的属性(特别是它的JQuery UI tab元素,我想处理点击"选择"标签,并添加这些标签动态地到DOM)所以我会这样做:
$("[aria-selected='true']").on('click').method(...);
但是我需要在创建元素时附加此处理程序,之后为时已晚;我正在创建这样的元素:
var $thisTab = $('<li></li>');
所以我需要一种方法来说&#34;将此处理程序附加到此元素,但只有在具有此属性时才触发它,例如:
$thisTab.withClass("[aria-selected='true']").on('click').method(...);
请参阅,此li包含<a href>link</a>
,其中&#34;已禁用&#34;当标签是&#34; aria-selected&#34;时通过插件。所以我不能只绑定事件并测试属性,否则我将打破非选定选项卡上的链接;我希望我有道理。
我该怎么做?
答案 0 :(得分:4)
这应该对你有用
$("body").on('click', "[aria-selected='true']", function(el){
// ..method
}
你需要将'future'元素限定为某个perm元素,比如正文,文档等。
更新:
如果您在创建TAB元素后需要执行某些操作,请使用以下内容:
$( ".selector" ).tabs({
create: function( event, ui ) {}
});
或者您需要在选择标签时更改某些内容,例如:
$( ".selector" ).tabs({
activate: function( event, ui ) {}
});
hth,欢呼声
答案 1 :(得分:1)
您可能希望delegate
点击处理程序。
$('.container').on('click', '[aria-selected=true]', function () {
// Do something.
});
答案 2 :(得分:1)
试试这个..
var $thisTab = $('<li></li>');
$thisTab.on('click', function(){
var d = $(this).attr('aria-selected');
if(d=="true") {
console.log("here")
}
});