2016-05-19 10 views
0

ボタン名add_subpage0、add_subpage1などがあります...次にonclickが機能します。例:名前でボタンの位置を取得しようとしているjquery

<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を移動しようとしています。唯一の問題(私が思う)は、ボタンの名前を取得しています。

div(add_subpage_popup)が表示されます。しかし、その位置は変わっていない。私はそれが私が設定した名前でボタンをつかむことさえないと思う。 考えていますか? Imを失った。 ザック

+0

なぜ、あなたの '入力タイプは、= [値]を持って' "提出" のでしょうか?また、onclickではなくonClickなぜですか? –

+0

'onclick =" popup_subpage(this) "'と書いてみませんか?関数は、名前を検索する代わりにボタン要素を直接受け取ります。 – Barmar

+0

そして 'div [id = add_subpage_popup]'は '#add_subpage_popup'にする必要があります。 – Barmar

答えて

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

名前が<input>要素、ない<div>上にあるため

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

でなければなりません。

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>

+0

私のような愚かな間違い。それは今働きます!どうもありがとうございます! :) –

1

このを関数に渡すと、自動的にその要素が処理されます。

<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); 

} 
関連する問題