2011-06-26 13 views
2

jQueryuiタブコンポーネントの新しいタブがクリックされたときを検出しようとしています。私はいくつかのガイドとブログを辿ってきましたが、そのプロセスの周りを頭で覆うことはできません。私は以下を持っています:jQueryUIの下で選択されている検出タブ

$('#tabs').tabs({ 
    select: function(event,ui) { 
    alert('selected'); 
    return false; 
    },     
}); 

私は何が欠けているのかわかりませんが、警告は起きません。私はおそらく愚かな間違いをしているので、私はjQueryで強くないので、どんな助けも高く評価されます。

おかげで、 クリス

更新:jsfiddle例http://jsfiddle.net/T7czp/16/

+0

あなたのタブは正常に動作していますか? –

答えて

4

エラーが表示されますか? selectの後ろの末尾に,があると、一部のブラウザでスクリプトが壊れます。

これは、このフィドルに見られるように動作します:http://jsfiddle.net/T7czp/15/

$('#tabs').tabs({ 
    select: function(event,ui) { 
    alert('selected: '+ui.index); 
    } 
}); 
+0

私は複数のイベントを持っているので、カンマはこれと次の項目を分けています。私はこのセレクタを自分のセクションに分解してもうまく動作しますが、他のイベントと一緒には動作しません。これは正常ですか、それぞれを別々のセクションに分割する必要がありますか? – Kristofer

+0

元の質問のスニペットをこれらの余分なイベントで更新するか、それを[jsFiddle](http://jsfiddle.net/)に入れて見てください。 –

+0

jsfiddleを更新している間、私は物事の順番が正しくないように見えましたが、何が間違っているのかを特定することはできません。 http://jsfiddle.net/T7czp/16/ – Kristofer

3

あなたがタブにイベントをバインドする必要があります。

$("#tabs").bind("tabsselect", function(e, tab) { 
    alert("The tab at index " + tab.index + " was selected"); 
}); 
+0

私の他のコメントと同様に、このメソッドは独自のセレクタとしても機能しますが、同じセレクタ内の他のイベントの隣に配置されているときは役に立ちません。 – Kristofer

1

@Kristofer

あなたのコードが正しいです。

あなたが選択し得るタブに順番に削除しなければならない唯一の事

はラインです:

return false; 

ためTabs component documentationによると:

なお、もしtabsselectイベントリターンのハンドラfalseの場合、クリックされたタブは選択されません(たとえば、次のタブに切り替えるにはフォームの検証が必要な場合など)。

は( "tabselect" イベントハンドラを "選択" に該当する)

4

最新版の使用

$('#tabs').tabs({ 
    activate: function(event,ui) { 
    alert('selected: '+ui.index); 
    } 
}); 
1

jqueryのUI最後に受け入れ答え以来、わずかに変更されているようです。

TEHアクティベート関数で定義されたUIパラメータは今これに似たオブジェクトである。

オブジェクト{oldTab = {...}、oldPanel = {...}、NEWTAB = {... }、more ...}

インデックスメソッドは、それぞれの内部にあります。更新されたアクセス方法は次のとおりです:

$('#tabs').tabs({ 
    activate: function(event,ui) { 
    alert('selected: '+ui.newTab.index()); 
    } 
}); 
関連する問題