Очистить фильтр выбираемых элементов с помощью кнопки JQueryJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Очистить фильтр выбираемых элементов с помощью кнопки JQuery

Сообщение Anonymous »

Я следую приведенному ниже ответу для своего сценария построения диаграммы, у меня нет проблем с ожидаемыми функциями, такими как отображение диаграммы, фильтрация диаграмм.
Редактирование фильтра категорий Google Charts
Моя проблема в том, что я использую кнопку JQuery, чтобы очистить выбор, кнопка «Очистить» создается и отключается. Я пытаюсь включить кнопку, но она не работает.

Код: Выделить всё


[*]


var click = 0;

function filter_st_charts(){
var st_chartview={};
var st_selectedvalues = [];

var r_row;
var r_view = {
columns: [0]
};

$('.st_selectable li.ui-selected').each(function(index, selected) {
st_selectedvalues.push(selected.innerHTML);
});

if(st_selectedvalues.length > 0){
$('.st_selectable').closest('.st_accordion').find('.button-reset').button('enable'); // Button is not enabling here
for (var i = 0; i < st_selectedvalues.length; i++) {
r_row = r_columnTable.getFilteredRows([{column: 1, value: st_selectedvalues[i]}])[0];
r_view.columns.push(r_columnTable.getValue(r_row, 0));
}
}
st_chart.setView(r_view);
st_chart.draw();
}

onload_st_filter_values = st_initState.selectedValues;
google.visualization.events.addListener(st_chart,'ready',function() {
var filt_values = onload_st_filter_values;
console.log("Inside ready");
if(click==0){
$.each(filt_values.filter(uniquelists), function(index, value) {
$('.st_selectable').append('' + value + '');
});
}

$('.st_accordion').accordion({
active: false,
create: function () {
$('.st_selectable').selectable({
filter: '*',
stop: filter_st_charts
});
},
collapsible: true,
heightStyle: 'content'
});

$('.button-reset').button();
$('.button-reset').button('disable');
$('.button-reset').on('click', clearFilter);

click++

})

function clearFilter(sender) {
console.log("Inside Clear Filter");
var accordion;
sender.preventDefault();
sender.stopPropagation();

accordion = $(sender.target).closest('.st_accordion');
accordion.find('.st_selectable li').removeClass('st_selectable .ui-selected');
accordion.accordion('option', 'active', false);
$(sender.target).closest('button').button('disable');
filter_st_charts();
return false;
}

Мой HTML-код

Код: Выделить всё









State 




[list][/list]



Мой CSS-стиль страницы

Код: Выделить всё

.st_accordion >  div.ui-accordion-content {
padding: 6px 6px 6px 6px;
}
.st_selectable {
list-style-type: none;
margin: 0;
padding: 0;
}
.st_selectable li {
background-color: #f6f6f6;
border: 1px solid #c5c5c5;
cursor: pointer;
font-size: 8pt;
margin-top: 2px;
padding: 6px 8px 6px 8px;
}
.st_selectable .ui-selecting {
background-color: #99ccff;
border: 1px solid #809fff;
}
.st_selectable .ui-selected {
background-color: #007fff;
border: 1px solid #003eff;
color: #ffffff;
}
.ui-button-icon-only {
float: right;
height: 18px;
margin: 0px;
min-width: 18px;
width: 18px;
z-index: 1;
}

.ui-widget {
font-size: 8pt;
}
В функции готовности я создаю кнопку и отключаю ее, а в функции filter_st_charts пытаюсь включить ее, но она не работает.
Я пробовал ниже, чтобы включить его

Код: Выделить всё

var btn = $('.st_selectable').closest('.st_accordion').find('.button-reset');
console.log(btn.length) -> returns 1
Я пробовал это

Код: Выделить всё

btn.prop('disabled',false) // not working
то это

Код: Выделить всё

btn.attr('disabled', false);
btn.removeAttr("disabled");
Ни один из них не работает, хотелось бы понять, где я делаю не так.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ery-button
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»