jquery试图按名称获取按钮位置

jquery trying to grab button position by name

本文关键字:获取 按钮 位置 jquery      更新时间:2023-09-26

所以我有一些按钮名为add_subpage0、add_subpage 1等等……然后单击一次就可以了。示例:

<input type="submit" name="add_subpage0" value="Add Subpage" onClick="popup_subpage('add_subpage0');">
<input type="submit" name="add_subpage1" value="Add Subpage" onClick="popup_subpage('add_subpage1');">

我试图抓住按钮的位置,并将div移动到所述位置。唯一的问题(我认为)是得到按钮的名称。

<script>
function popup_subpage(thisdiv) {
    var name = 'div[name=' + thisdiv + ']';
    var thebutton = $( name );
    var popupdiv = $( 'div[id=add_subpage_popup]' );
    var position = thebutton.position();
    popupdiv.css("visibility", "visible");
    popupdiv.css("top", position.top);
    popupdiv.css("left", position.left);
}
</script>

div(add_subpage_popup)变为可见。但立场没有改变。我想它甚至没有按我设定的名字按下按钮。有什么想法吗?我不知所措。Zach

var name = 'div[name=' + thisdiv + ']';

应该是

var name = 'input[name=' + thisdiv + ']';

因为名称是在<input>元素上而不是在<div>上。

function popup_subpage(thisdiv) {
  var name = 'input[name=' + thisdiv + ']';
  var thebutton = $(name);
  var popupdiv = $('div[id=add_subpage_popup]');
  var position = thebutton.position();
  popupdiv.css("visibility", "visible");
  popupdiv.css("top", position.top);
  popupdiv.css("left", position.left);
}
#add_subpage_popup {
  visibility: hidden;
  position: absolute;
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="submit" name="add_subpage0" value="Add Subpage" onClick="popup_subpage('add_subpage0');">
<input type="submit" name="add_subpage1" value="Add Subpage" onClick="popup_subpage('add_subpage1');">
<div id="add_subpage_popup">
  Popup
</div>

只需在函数中传递this,即可自动获得要使用的元素。

<input type="submit" name="add_subpage0" value="Add Subpage" onClick="popup_subpage(this);">
function popup_subpage(thisEl) {
    var thebutton = $( thisEl );
    var popupdiv = $( 'div[id=add_subpage_popup]' );
    var position = thebutton.position();
    popupdiv.css("visibility", "visible");
    popupdiv.css("top", position.top);
    popupdiv.css("left", position.left);
}