2012-01-06 9 views
1

私はjquery(mobile)を使って、HTMLテーブルの列を隠す/表示する選択メニューを生成しています。ダイナミック生成された複数選択でchange()を起動する方法は?

は次のようになります。

container = $('<select name="toggleCols" id="toggleCols" multiple="multiple"><option value="default" data-placeholder="true">Edit</option></select>'); 

$('.tableRows').each(function(i) { 
    if ($(this).is(".toggle")) { 
     var toggle = $('<option value="'+i+'">sometext'+i'+</option>'); 
    container.find("#toggleCols").append(toggle); 
    }); 

これは、各テーブルの列に1つのオプションが含まれている選択メニューを作成します。このオプションを選択すると、それぞれの表の列を非表示/非表示にする必要があります。

しかし、私は火に変更イベントを取得することはできません。

$("#toggleCols").change(function(){ 
    console.log("change") 
    // do stuff 
    }) 

私は ...「変更」(ライブと10列を持っているを使用している場合は、私が10 console.logs私が選択するたびに取得します1つのオプション。だから、これはどちらか動作しません。

QUESTION
はライブなしに変更を使用して単一にconsole.logを取得する方法はありますか?

+1

使用していない任意のコードスニペットではなく、_テストケース_を表示します。 –

+1

あなたは私たちにフィドルをしてもらえますか? –

+0

イベントをバインドまたはトリガーする必要があるかもしれません。 –

答えて

0

ループからイベントバインディングを削除して、オプションを追加する必要があります。その後、ライブを使用して正常に動作し、一度だけ発生します。

1

jQueryの最新バージョンを使用していますか?これに問題があり、jQuery 1.4.2の後に修正されました。 Any alternative to jQuery change() to detect when user selects new file via dialog box in IE8?

PS:

はここに関連する問題を参照してください。私はあなたのポストの下にコメント/質問としてこれを書こうとしましたが、何らかの理由で許可されていません。お役に立てれば。

関連する問題