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;
});

这个函数得到了结果,但我必须单击菜单一次才能让它工作。如何在第一次单击以发送获取方法时获得此信息?还是某些功能可以触发 $('#menuSelection') 上的更改?

感谢您的帮助,希望您能理解我的问题。

4

1 回答 1

2

我希望我正确地理解了你。输入不会触发更改事件,除非在获得焦点后失去焦点(在基本意义上)

为了让它“活”,添加一个包装器并使用 on

$('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 回答