2011-11-11 12 views
2

jqueryを使用しています。私はxsltで動的に生成されるアンカータグを持っています。各アンカーは、hidden divを開き、onclickイベントで異なる値を渡す必要があります。アンカータグと隠蔽部のjQueryセレクタの問題

私は2つの異なるボタンがあります.1つは、確認のために他のアクションをキャンセルするためのボタンです。アイデアは:私が確認ボタンをクリックすると、previusアンカー(それは隠されたdivを表示するために前にクリックされました)は他のスタイルを取得します(私はaddClassを使用します)。

問題:私が別のアンカー(divを表示する)をクリックすると、以前のものがクリックされました。新しいものを取得しました。値。たとえば、「a」ボタンをクリックすると、divを表示し、キャンセルをクリックすると(何も起こりません)、「b」ボタンをクリックして確認をクリックすると、「a」と「b」が取得されますスタイル。

選択したボタンにスタイルを表示するだけでよいのですが、どうすればいいか分かりません。

マイコード:

function showInfo(team, selectName, selectId, temps, thisid){ 
    //Create a function that will recieves some values    
var showInfoLink = thisid; //Asigh a new variable the value of thisid ($(this)) 
showInfoLink.removeClass("highlighted"); 

//Show the component 
$("#com_advanceBet").css('z-index' , '1'); 

//in the component is a select, it will show the name on the anchor of the selected item     
$("select").change(function() { 
    var str = ""; 
    $("select option:selected").each(function() { 
    str += $(this).text() + " "; 
    }); 
    showInfoLink.html(str); 
}) 
.change(); 

//once i click here the anchor will have this class 
    $('#com_continueBet').click(function(){ 
    showInfoLink.removeClass('nostyle'); 
    showInfoLink.addClass('highlighted'); 

//hide the component 
    $("#com_advanceBet").css('z-index' , '-999999'); 
    });    
} 

これはアンカーである:アンカーで

<a href="#" onclick="showInfo('{$team}', '{$selectName}', '{$selectId}', '{$temps}', $(this)); " class="nostyle" ><xsl:value-of select="$pt" disable-output-escaping="yes"/><span class="test" style="font-size:0.65em"><xsl:value-of select="$odds" disable-output-escaping="yes"/></span></a> 

、私は関数に$(this)を渡しますが、何らかの理由でそれがすべてpreviusの値を持っていますクリックしたアンカー。

答えて

1

私はjsFiddleでこのモックのバージョンを作成しました:それは非常に単純化されただとそれが必要として働いているように見えるhttp://jsfiddle.net/dPZJc/6/

を。

+0

Thxは動作しますが、私は望んでいません。つまり、IDなしでdinamically生成されるため、アンカーにidsを追加できません。クリックしたときに同じ関数を実行するIDがたくさんあります。 ( '$(this) ')がスコープ外にあると思いますが、いくつかの問題があります... –

+0

JavaScriptかサーバーサイドのスクリプト言語から生成されていますか? idsは無関係でなければなりません。あなたがスクリプトで見ることができるように、彼らは '$(this)'が正しい状況にあることを確認するためのテストのためだけに存在します。 'alert(thisid.attr( 'id'); 'で関数の最初の行のコメントを外すと、正しいオブジェクト(この場合はDOM要素)を参照していることがわかります。 –