2013-12-12 4 views
1

Допустим, у меня есть следующий код:Проверьте, существует ли кнопка JQueryUI перед уничтожением?

JS:

$('.remove').button("destroy"); 

Если я запускаю это, прежде .button() вызывается, я получаю сообщение об ошибке в консоли, как следующее:

Error: cannot call methods on button prior to initialization; attempted to call method 'destroy'

Как я могу проверить, если кнопка была фактически создана, прежде чем пытаться уничтожить его?

+0

JQuery UI версия используется –

+0

Я впечатлен, сколько различных способов было сделать это. –

ответ

2
$('.remove.ui-button').button("destroy"); 
+0

ничего себе тоже очень хорошо :). –

+0

Ваше решение - это наименьшее количество строк, довольно приятно! –

0

пытается воспользоваться кнопкой "создать"

создать глобальный переменную

var created=false; 

при применении пользовательского интерфейса для кнопки

$('button').button({create:function(){created=true;}}); 

при удалении

if(created==true) 
{ 
    // destroy 
} 
1

Вы можно попробовать

$('.remove').filter(function(){ 
    return $(this).data().uiButton != undefined 
}).button('destroy') 
+0

Это интересный способ сделать это тоже. Это лучше, чем я придумал? –

0

Я просто понял это

if($('.remove').is(":ui-button")){ 
    $('.remove').button("destroy"); 
} 
1

Вы можете использовать это -

if ($('.remove').hasClass("ui-button")) 
{ 
    // Button exists 
} 
else 
{ 
    // Button does not exists 
} 
Смежные вопросы