0

イベントハンドラに問題があります。

<input id="menuSelection" type="text" value=""/>

このフィールドは、値を持つメニューからトリガーされます。しかし、私の問題は、これをより「ライブ」に機能させるためのjqueryコードのどこかにあります

hierarchybreadcrumb はメニュー ID です。

$('#hierarchybreadcrumb').click(function(){
var text = $('#menuSelection').val();

$.get('exercise/xhrGetValue', {text:text}, function(o){

});
return false;
});

この関数は結果を取得しますが、機能させるには一度メニューをクリックする必要があります。get メソッドを送信する最初のクリックでこれを取得するにはどうすればよいですか? それとも $('#menuSelection') で変更をトリガーできる機能ですか?

助けてくれてありがとう、私の問題を理解してくれることを願っています。

4

1 に答える 1

2

私はあなたを正しく理解したと思います。(基本的な意味で)フォーカスを取得した後にフォーカスが失われない限り、入力は変更イベントをトリガーしません

「ライブ」にするには、ラッパーを追加して、

$('mywrapperselector').on('click','#hierarchybreadcrumb',function(){
    var text = $('#menuSelection').val();

    $.get('exercise/xhrGetValue', {text:text}, function(o){
    });
    return false;
});

最悪の場合:

$(document).on('click','#hierarchybreadcrumb',function(){
    var text = $('#menuSelection').val();

    $.get('exercise/xhrGetValue', {text:text}, function(o){
    });
    return false;
});

ここで、変更イベントをトリガーする場合は、次のようにします。

$(document).on('click','#hierarchybreadcrumb',function(){
    var text = $('#menuSelection').val();

    $.get('exercise/xhrGetValue', {text:text}, function(o){
          $('#menuSelection').val('some new value').trigger('change');
          //assume you want it in here
    });
    return false;
});
于 2013-03-15T13:31:28.190 に答える