jQuery imgAreaSelect Скрыть / показать?
Я пытался скрыть и показать imgAreaSelect
поле выбора в зависимости от того, установлен флажок или нет.
Я пробовал:
var ias = $('#photo').imgAreaSelect({ instance: true });
ias.setOptions({ show: false });
но он, похоже, ничего не делает.
мне пришлось прибегнуть к:
$('div.imgareaselect-selection').hide();
$('div.imgareaselect-border1').hide();
$('div.imgareaselect-border2').hide();
$('div.imgareaselect-border3').hide();
$('div.imgareaselect-border4').hide();
$('div.imgareaselect-handle').hide();
$('div.imgareaselect-outer').hide();
но это кажется немного громоздким, и я уверен, что там должен быть лучший способ.
5 ответов
вам нужно обновить экземпляр после изменения параметров -http://odyniec.net/projects/imgareaselect/usage.html#api-methods . Хотя, по правде говоря, я не уверен, следует ли использовать { hide: true } или {show: false}.
var ias = $('#photo').imgAreaSelect({ instance: true });
ias.setOptions({ hide: true });
ias.update();
Я никогда не использовал imgAreaSelect себя, но в docs нет опции show
присутствует, но никто по имени hide
. Ты пробовал?
var ias = $('#photo').imgAreaSelect({ instance: true });
ias.setOptions({ hide: true });
ias.update();
как указывает BBonifield, похоже, вам нужно позвонить update()
после изменения параметров.
в качестве альтернативы вы можете использовать:
$('div[class^=imgareaselect-]').hide();
это выбирает все div
s, которые имеют класс, который начинается с "imageareaselect -" и скрывает их.
в API есть функция выбора отмены, поэтому используйте ее следующим образом:
var ias = $('#photo').imgAreaSelect({ instance: true });
ias.cancelSelection();
бум!
вам не нужно возвращать экземпляр и вызывать методы API. Вы можете просто:
var ias = $('#photo').imgAreaSelect({ hide: true });
вы можете увидеть все другие вызовы методов здесь (официальная документация):http://odyniec.net/projects/imgareaselect/usage.html
Я пробовал все варианты, упомянутые здесь. Ничего не помогало. Я ожидал, что какой-то вызов api сделает это. Но ни одна из них не сработала.
Я закончил делать вручную, как это:
$(".imgareaselect-selection").hide();
$(".imgareaselect-outer").hide();
$(".imgareaselect-border1").hide();
$(".imgareaselect-border2").hide();
структура моей страницы сложна. Кажется, это помогает.