2012-01-21 8 views
2

js/jqueryを使用してドラッグ可能なグラフを作成しています。グラフには、グラフに基づいて値を選択する2つのドラッグ可能な要素があります。私の問題は、次のステップは、が1ページに最大6つのグラフを掛けることができることです。これは、グラフが動的に作成されたときに参照する要素が$(this)の場合のみです。同じ機能ですか?複数のHTML要素で1つのJavascript/Jquery関数を使用していますか?

EDIT:

function drag_function(event, ui) { 

    var $selFirst = $(".second :nth-child(1)"), 
     $selSecond = $(".second :nth-child(2)"), 
     cachedWidth = $selFirst.outerWidth(); 

    var $firstRightBorder = $selFirst.position().left + 1, 
     $secondLeft = $selSecond.position().left, 
     diff = $firstRightBorder - $secondLeft; 
} 

は、私が使用している場合:

function drag_function(event, ui) { 

    var $selFirst = $(this), 
     $selSecond = $(this), 
     cachedWidth = $selFirst.outerWidth(); 

    var $firstRightBorder = $selFirst.position().left + 1, 
     $secondLeft = $selSecond.position().left, 
     diff = $firstRightBorder - $secondLeft; 
} 

もdoesntの仕事を?

ANSWER:

var $selFirst = $(this).parent().children().eq(0), 
     $selSecond = $(this).parent().children().eq(1) 

答えて

1

あなたが達成したいのかはまだ明らかではありません。私はそれがこれだと思います。下の例のdivをドラッグアンドドロップしてください。イベントハンドラ関数thisevent.currentTarget

http://jsfiddle.net/diode/8wxCb/1/

事象が発生したオブジェクトを参照します。例えばのための

button1.onclick = function(event){ 

    console.log(this); // button1 
    console.log(event.currentTarget); // button1 

} 

ですから、多くのリスナーと同じ機能を追加した場合、あなたが得るとしての機能であなたが

if(this == button1){ 

}else if(this == button2){ 

} 

または

if(this.id == "button1"){ 

}else if(this.id == "button2"){ 

} 

を確認することができますあなたは直接それを読む/それのプロパティを書くことができる関数内のオブジェクト

参照:http://jsfiddle.net/diode/nZQy6/

+0

ただ、このコンポーネントのすべての要素を動的に作成され、削除することができますので、私は、ユーザーが追加することができますので、「ボタン1」は... /削除した場合、ID名があると言う行くことはできません追加します動的に構築? –

関連する問題