Javascript JQuery将图像添加到Div

Javascript JQuery将图像添加到Div,javascript,jquery,html,Javascript,Jquery,Html,我试图为jQuery创建一个插件,但出现了一个问题 这是.html: 这是.js文件: 我想要一个div中有4个箭头 中上部 右中 中下部 左中 如果它没有打包在插件中,它就可以正常工作 但是,如果我包括插件,它的错误 这是Firebug的输出: <img class="arrows" src="arrow-top.png" alt="Arrow-Top" style="height: 26px; width: 20px; top: 50px; left: 480480px; posi

我试图为jQuery创建一个插件,但出现了一个问题

这是.html:

这是.js文件:

我想要一个div中有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;">
    
    
    

    有人能帮忙吗?很抱歉我的英语不好。

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

    你有
    左:480px在两个位置和
    顶部:50250px
    。你还没有准确地解释什么没有发生,或者什么期望的行为超出了“it bug”

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

    但我认为这些奇怪的左上角可能导致了您所指的
    bug

    编辑:您的问题似乎是您包含了arrow.js插件,但自己却覆盖了它。乍一看,arrow.js和javascripting区域中的代码看起来完全相同。(当然,他们都有一个共同的问题,就是在计算中没有括号!)

    我已经删除了对arrow.js的依赖,我认为您也应该这样做,因为您显然是在将代码复制到标记中。如果您无法控制arrow.js,那么您应该使用自己的代码,因为arrow.js在计算顶部和左侧时没有括号,因此它是有缺陷的

    这是从更大的
    互联网上获取的带有基本箭头的列表(因为我无法访问您的箭头)。停止依赖arrow.js;正如我所描述的那样纠正它,你会在一个更好的地方。当你加入插件时,为什么所有东西都会坏的问题的答案是插件是错误的


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

    要在线共享html/css/js代码片段,请使用Ok,就是这样:嘿,好了。我有一个div,我想添加4个箭头。下面是一个示例:当jquery代码直接位于.html文件中时,它可以正常工作。但是当我创建一个插件时,它给了我一些奇怪的bug,比如left:480px;顶部:50250px;这里有一个新的链接,我建议您使用Firebug手动逐步完成javascript逻辑,并查看从o对象中提取的值。有很多地方
    pos.top+height-o.arrowhight
    会出错,而且几乎可以肯定的是,您希望在算术运算周围加上括号;否则,javascript可能只输出480480而不是(480-480)=0@Lizzaran; 我已经更新了我的答案,相信这会回答你的一些问题。如果我看的是正确的插件(arrow.js),那么这个插件就是有缺陷的。我的建议是,把代码改成你的奇思妙想。