0

I tried to create a plugin for jQuery, but there is a problem.

This is the .html: http://pastebin.com/amLSFSZX

and this is the .js file: http://pastebin.com/CmrHzKRk

I want 4 arrows in a div.

  1. Top Middle
  2. Right Middle
  3. Bottom Middle
  4. Left Middle

If it's not packed in a plugin it works fine.

But if I include the plugin, it bugs.

This is the output via 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;">

Can anyone help? Sorry for my bad english.

4

1 回答 1

1

这可能只是一个复制/粘贴或其他错误,但你的 firebug 输出的内联样式在某些地方看起来很奇怪。

你有left: 480480px;两个地方和top: 50250px。您还没有准确解释没有发生什么或期望的行为超出了“它的错误”。

关于您的 jsfiddle,感谢您将这些资源整合在一起,但是当我第一次对其执行运行时,我的开发人员工具中已经出现了两个错误。未找到arrow.js,并且您无法在#map 上调用AddArrow 方法。您可能正在使用 jQuery,因此您需要在窗口左侧选择它作为您的框架。

但我认为那些奇怪的左侧和顶部方面可能会导致bugs您所指的问题。

编辑:看起来你的问题是你包含了 arrow.js 插件,但是你自己覆盖了它。乍一看,arrow.js 和您的 javascripting 区域中的代码看起来相同。(当然,他们都分享了你的计算没有括号的问题!

我已经在我的小提琴中删除了对 arrow.js 的依赖,我认为你也应该这样做,因为你显然正在将代码复制到你的标记中。如果您无法控制arrow.js,那么您应该使用自己的代码,因为arrow.js没有在top 和left 的计算周围加上括号时是有缺陷的。

这是更新的小提琴,其中基本箭头取自较大的Internet(因为我无权访问您的箭头)。停止依赖arrow.js;正如我所描述的那样纠正它,你会在一个更好的地方。包含插件时为什么一切都会中断的问题的答案是插件错误。

您将需要调整代码以在您的上下文中正确执行它。例如:jsfiddle 为您触发 $(document).ready()。

于 2012-04-18T12:16:24.400 回答