2011-01-20 2 views
0

変更イベントを取得して関数を呼び出す方法がわかりません。"変更" JavaScriptイベントにイベントハンドラをバインドする方法、またはその要素のイベントをトリガする方法はありますか?

$(function() { 

    function foo() { 
    alert("ok"); 
    } 

    //works 
    $('#myElement').change(function() { 
    alert("ok"); 
    }); 

    //does not work 
    $('#myElement').change(foo); 

    //does not work 
    $('#myElement').change(foo()); 
} 
+0

あなたは、エラーまたは単に全く活性を取得していますか? –

+0

[私のための作品](http://jsfiddle.net/lonesomeday/t5aAn/)。 – lonesomeday

+0

@lonesomeday - 例のように、コードをプライベートスコープに入れていません。あなたは同じものを比較していません。 – Oded

答えて

2

次の例のすべてがを動作するはずです、そうでない場合は、その後、あなたは何か間違ったことをやっています。

$(function() { 
    function foo(e) { 
    alert("ok"); 
    } 
    $('#myElement').change(function(e) { 
    alert("ok"); 
    }); 
    $('#myElement').change(foo); 

    //trigger the event like so: 
    $('#myElement').change(); 
}); 
+0

ありがとう、Jacob - あなたは正しいです、私は間違ったことをしていました。質問に掲示されているように自分のコードを基礎にしたら、それは機能します。 – Rob

0
$('#myElement').change(function() { 
    foo(); 
    }); 
+0

それは動作しません。 – Oded

+0

@Oded:なぜですか? – user113716

+0

@patrick dw - jsFiddleで試してみた...いいえ... – Oded

0

これは動作するはずです:あなたのコード例で

$('#myElement').change(foo); 

を使用すると、1つの閉じ括弧が欠落しています。

0

バージョン1と2はFF3.6とIE7で動作します。バージョン3は、かっこの存在のためすぐに実行されます。あなたはバージョン2が動作していないブラウザを提供できますか?
$('#id').bind('change',function(){/*code here*/});
とイベントをトリガーするために:変更イベントに関数をバインドする

0


$('#id').trigger('change');

関連する問題