2012-04-18 2 views
0

Я попытался создать плагин для jQuery, но есть проблема.JQuery Добавить изображение в Div

Это .html: http://pastebin.com/amLSFSZX

и это .js файл: http://pastebin.com/CmrHzKRk

Я хочу 4 стрелы в виде дел.

  1. Top Middle
  2. Правый средний
  3. Bottom Средний
  4. Слева Посередине

Если он не упакован в плагине он работает отлично.

Но если я включаю плагин, это ошибки.

Это выход через Firebug:

<img class="arrows" src="arrow-top.png" alt="Arrow-Top" style="height: 26px; width: 20px; top: 50px; left: 480480px; position: absolute; display: none;"> 
<img class="arrows" src="arrow-right.png" alt="Arrow-Top" style="position: absolute; display: none;"> 
<img class="arrows" src="arrow-bottom.png" alt="Arrow-Top" style="left: 480480px; position: absolute; display: none;"> 
<img class="arrows" src="arrow-left.png" alt="Arrow-Top" style="height: 20px; width: 26px; top: 50250px; left: 480px; position: absolute; display: none;"> 

Может кто-нибудь помочь? Извините за мой плохой английский.

+0

Для совместного HTML/CSS/JS код и поместив его в Интернете, использовать http://jsfiddle.net/ – Sparky

+0

Ok, вот это: http://jsfiddle.net/2GzjB/ – Lizzaran

ответ

1

Это может быть просто копия/вставка или другая ошибка, но ваши встроенные стили, выводимые firebug, выглядят странно в нескольких местах.

У вас есть left: 480480px; в двух местах и ​​top: 50250px. Вы точно не объяснили, что не происходит или что желаемое поведение выходит за рамки «ошибок».

Что касается вашего jsfiddle, спасибо за то, что вытащили эти ресурсы вместе, но когда я впервые запустил его, у него уже есть две ошибки, которые появляются в моих инструментах разработчика. arrow.js не найден и вы не можете вызывать метод AddArrow на #map. Вероятно, вы используете jQuery, поэтому вам нужно будет выбрать это как свою структуру в левой части окна.

Но я думаю, что эти нечетные аспекты слева и сверху могут вызывать bugs, о котором вы говорили.

Редактировать: Похоже, ваша проблема в том, что вы включаете плагин arrow.js, но затем переопределяете его сами. На первый взгляд стрелка.js и код в вашей области javascripting выглядит одинаково. (Конечно, они оба разделяют проблемы, не имеющие круглые скобки вокруг расчетов!)

Я извлекал опираясь на arrow.js в моей скрипке, и я думаю, что вы должны слишком, так как вы, очевидно, копируют код в вашу надбавку. Если у вас нет контроля над arrow.js, то вы должны быть, используя собственный код, потому что стрелка.js ошибочна, когда она не помещает круглые скобки вокруг вычислений сверху и слева.

Вот updated fiddle с основными стрелками, взятыми из большего Internet (так как у меня нет доступа к стрелкам). Прекратите полагаться на arrow.js; исправьте его, как я описал, и вы окажетесь в лучшем месте. Ответ на ваш вопрос о том, почему все ломается, когда вы включаете плагин, заключается в том, что плагин ошибочен.

Вам необходимо будет отрегулировать код, чтобы выполнить его правильно в своем контексте. Например: jsfiddle запускает $ (document) .ready() для вас.

+0

Эй, так. У меня есть div, и я хочу добавить 4 стрелки. Вот пример: http://s7.directupload.net/images/120418/dwlhs78z.jpg Когда код jquery находится непосредственно в файле .html, он отлично работает. Но когда я создаю плагин, он дает мне некоторые странные ошибки, например left: 480480px; наверх: 50250px; и т. д. вот новая ссылка http://jsfiddle.net/Q6nmR/3/ – Lizzaran

+0

Я бы предположил, что вы используете Firebug для ручного перехода через вашу логику javascript и посмотрите на значения, которые извлекаются из вашего объекта o , Есть много мест для 'pos.top + height - o.ArrowHeight', чтобы пойти не так - и вы почти наверняка хотите поставить круглые скобки вокруг своих арифметических операций; в противном случае ваш javascript может просто выводить 480480 вместо (480-480) = 0 – veeTrain

+0

@Lizzaran; Я обновил свой ответ и считаю, что должен ответить на некоторые из ваших вопросов. Плагин ошибочен, если я смотрю на правый (стрелка.js). Просто возьмите этот код и согните его своим прихотям, это мое предложение. – veeTrain

Смежные вопросы