Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery:我可以根据链接的位置使这个Ajax框左右对齐吗?_Jquery_Html_Css - Fatal编程技术网

Jquery:我可以根据链接的位置使这个Ajax框左右对齐吗?

Jquery:我可以根据链接的位置使这个Ajax框左右对齐吗?,jquery,html,css,Jquery,Html,Css,这里是jquery的新手,我在一个链接下创建了一个Ajax框。它适用于页面左侧的链接,但当链接位于右侧时,框与页面对齐不正确。我使用的是盒式自动取款机的绝对定位,这就是它对齐的原因 是否有一种方法可以使页面左侧的链接正确对齐到右侧,然后将页面右侧的链接正确对齐到左侧。我真的很感激你!谢谢 这里有一个大致的方法: [edit]:我更新了它,以使用CSS中工具提示的宽度: [编辑编号2:]如果您添加以下内容: $('<div/>',{html:"", id:'tooltip'}).c

这里是jquery的新手,我在一个链接下创建了一个Ajax框。它适用于页面左侧的链接,但当链接位于右侧时,框与页面对齐不正确。我使用的是盒式自动取款机的绝对定位,这就是它对齐的原因

是否有一种方法可以使页面左侧的链接正确对齐到右侧,然后将页面右侧的链接正确对齐到左侧。我真的很感激你!谢谢


这里有一个大致的方法:

[edit]:我更新了它,以使用CSS中工具提示的宽度: [编辑编号2:]如果您添加以下内容:

 $('<div/>',{html:"", id:'tooltip'}).css({visibility:"hidden"}).prependTo( 'body' );
你可以用
$(“#tooltip”).width()之类的东西来替换“300”,这样你就不必更新它了,但你可能已经知道了

神奇发生在这里:

var modifier = (offset.left>$(document).width()-oWidth)?-oWidth:10;
如果您不熟悉,这只是一个简化的If语句,相当于:

if(offset.left>$(document).width()-oWidth){
    var modifier = -oWidth;
} else {
    var modifier = 10;
}

然后,您只需将修改器添加到位置左侧,就可以确定您的位置。

我可以提出如下建议:

if ($link.parent().hasClass('right'))
                $('#tooltip').css({left:+pos.left + $link.outerWidth() - $('#tooltip').outerWidth() + 'px'});

刚刚添加到成功功能的末尾?

期望的结果是什么?框似乎出现在链接下方,这不是所需的位置吗?当您单击浮动到右侧的链接时,框向右打开(导致出现滚动条),这是页面边缘,我希望它向左扩展,保持页面宽度不受干扰。哦,我现在看到了,抱歉我的混淆。我建议找到链接的宽度,以及生成的对象的宽度,并根据这些宽度进行调整。非常感谢您的帮助,我需要花一点时间来解决这个问题,并确切地了解您在这里做什么。您知道为什么如果您先单击右链接,ajax框无法正确展开,但是,如果您第二次单击它,它就会工作,并且每次都会工作吗?因为oWidth正在从
$(“#工具提示”)
读取它的值,所以在创建工具提示之前,它无法找到值。您只需手动分配
var oWidth=300而不是
var oWidth=$(“#工具提示”).width()来解决这个问题。或者创建一个隐藏的工具提示,以便它可以直接从您的html@trying_hal9000我对代码进行了注释以使您更方便。@我还添加了如果您将
$(“”,{html:,id:'tooltip'}).css({visibility:'hidden'}).prependTo('body')
位于document.ready区域的开头,这样也可以解决问题,它将允许$(“#tooltip”).width()从CSS中查找宽度。
if ($link.parent().hasClass('right'))
                $('#tooltip').css({left:+pos.left + $link.outerWidth() - $('#tooltip').outerWidth() + 'px'});