|
|
|
| Я использую библиотеку JavaScript highslide
Разработчик предлагает вызов объекта ссылкой
<a href="includes/include-short.htm" onclick="return hs.htmlExpand(this, { objectType: 'iframe', minWidth:1000} )"> Content in iframe</a>
|
Мне надо переписать, например так
<a href="includes/include-short.htm" onclick="return fix1();">Content in iframe</a>
<script type="text/javascript">
function fix1() {
hs.htmlExpand( this, { objectType: 'iframe'} );
}
</script>
|
Во втором случае она не работает.
Помогите найти ошибку | |
|
|
|
|
|
|
|
для: Valleri
(23.01.2012 в 07:30)
| | Я не знаю библиотеку JavaScript highslide (и знать не хочу).
Но синтаксических ошибок вижу минимум две:
1. в существующей конструкции при вызове функции hs.htmlExpand () ей передаётся параметр this, т.е. сама ссылка, по которой кликнули.
В вашей же конструкции вызываемая функция fixl () никаких параметров при вызове не получает.
Но внутри этой функции из ниоткуда появляется this. А всякий внезапно взявшийся this внутри функции Яваскриптом рассматривается как сама функция.
-----
2. в существующей конструкции при клике ссылке что-то возвращается - потому и прописан return. Вероятнее всего, функция hs.htmlExpand () в конце своей работы генерирует строку return false (или return true) и это самое false (или true) получает ссылка, что запрещает (либо разрешает) ей переходить к файлу, указанному в атрибуте HREF ссылки.
В вашей же конструкции return при событии onclick прописан. Но функция fixl () ссылке НИЧЕГО не возвращает, сиречь обработчик клика в итоге "подвисает".
Не знаю уж, поможет или нет (повторюсь, что я не в курсе вообще - что такое JavaScript highslide), но конструкцию следует переписать следующим образом:
<a href="includes/include-short.htm" onclick="return fix1(this);">Content in iframe</a>
<script type="text/javascript">
function fix1(obj) {
return hs.htmlExpand( obj, { objectType: 'iframe'} );
}
</script>
|
| |
|
|
|
|
|
|
|
для: АЯС
(23.01.2012 в 08:02)
| | ВО спасибо
На самом деле мне это надо для того, что бы изменять свойства объекта.
Сейчас я хочу добавить возможность фиксации объекта.
Внутри библиотеки я легко меняю, но мне надо что бы во время работы, динамически
Я понимаю, что должно быть, но опять не получается
obj.style.position=fixid;
|
Т.е, если добавить в первый вызов, то конечно работает
Но мне надо переключать.
Наверное, надо дать имя объекту, и дальше из окна диалога(типа jqvery) переопределить свойство position | |
|
|
|
|
|
|
|
для: Valleri
(23.01.2012 в 08:15)
| | За безграмотность не только в школе двойки ставят.
Яваскрипт - он тоже бездарей не любит.
Значение для позиционирования следует писать правильно, а именно fixed.
Кроме того, при записи в Яваскрипте следует выделять это слово кавычками, ибо это СТРОКА, а не имя переменной. Т.е. следует писать так:
obj.style.position = 'fixed';
|
| |
|
|
|
|
|
|
|
для: АЯС
(23.01.2012 в 08:22)
| |
var ofix1;
function fix1(obj) {
ofix1 = obj;
return hs.htmlExpand( obj, { objectType: 'iframe'} );
}
function fix2(){
ofix1.style.position='fixed';
}
|
Теперь я хочу его вызвать для изменения позиционирования, например
<input type="button" value="position'" onclick=" fix2();" />
И не работает, не фиксирует. | |
|
|
|
|
|
|
|
для: Valleri
(23.01.2012 в 08:33)
| | >"Теперь я хочу его вызвать для изменения позиционирования "
Два вопроса:
1) "ЕГО" - это кого именно вы "хотите вызвать"?
2) и КОГО именно хотите "позиционировать" при вызове первого "его"? | |
|
|
|
|
|
|
|
для: АЯС
(23.01.2012 в 09:43)
| | Собственно цель - изменить позиционирование у окна диалога, которое создается, при нажатии на этой ссылке.
Тут речь идет о библиотеке, очень хорошо сделанной, с богатыми возможностями
http://highslide.com/
http://www.highcharts.com/
http://highslide.com/editor/
http://highslide.com/ref/
Там есть функция, onAfterExpand, но я не пойму как её применить. | |
|
|
|
|
|
|
|
для: Valleri
(23.01.2012 в 10:06)
| | Библиотека - она, мей би, и "богата".
Но для того, чтобы библиотекой (любой) пользоваться, надо, как минимум, уметь читать.
Переменная obj, которую я ввёл в ваш скрипт - это ссылка, по которой кликнули.
Вы эту ссылку как объект сохраняете ofix1 = obj; и затем именно этой ссылке пытаетесь присвоить стиль позиционирования fixed.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: АЯС
(23.01.2012 в 10:19)
| | . | |
|
|
|
|
|
|
|
для: Valleri
(23.01.2012 в 08:33)
| | Это строка ofix1.style.position='fixed'; не будет работать - у объекта нет этого свойства.
Если получите ID, то по идее может так заработать | |
|
|
|