我试图扩展jQuery UI对话框()来使用箭头指针来指向被点击的内容.我遇到的问题是知道碰撞方法是否运行,所以我可以从左侧更改为右侧的指针.
是否可以知道position.collision方法何时触发?
$('#myElem').dialog({ position:{ collision:'flip' } });
解:
事实证明,你可以传递比在文档中说的更多.这是我最终使用这解决了我的问题:
position: { my: 'left top',at: 'right center',of: $trigger,offset: '20 -55',collision: 'flip',using: function(obj) { var $modal = $(this),trigger_l = $trigger.position().left,modal_l = obj.left,top; // Check IE's top position top = ( isIE ) ? obj.top - 48 : top = obj.top; $(this).css({ left: obj.left + 'px',top: top + 'px' }); } }
我使用position对象中的using方法来做大部分的工作.然后,我做了一个快速检查,看看它是否是IE,在文档的前面完成,并相应地设置我的CSS.
之前我做了这个,所以让我知道如果你遇到问题.