如何订阅触发onchange和自定义事件的方法?

时间:2010-10-06 07:09:34

标签: javascript jquery ajax events

我有一个方法设置来使用以下代码触发onChange:

var product = $('#selProduct:visible');
var note=$('#bbdata');

product.selectProduct({
    target: note,
    url: 'product.php',
    data: { ajax: true }
}).trigger('change'); // TO DO: to fire also on visibility change

然后我有一个方法,我可以看到div。

function show_product() {
    hide_group2();
    $("#product_zone2").show('fast', function(){
    $("selProduct").trigger('isVisibleProduct');// custom trigger event
    });
}

我想在提升自定义事件时将方法定义更改为触发。我该怎么做?

2 个答案:

答案 0 :(得分:2)

使用此代码

product.selectProduct({
    target: note,
    url: 'product.php',
    data: { ajax: true }
}).trigger('change');

未对selectProduct()事件触发change。您只需执行selectProduct(),然后在change上解除product也许 selectProduct()将某些内容绑定到change事件。但不知道它做了什么,很难说。

如果要对selectProduct()事件和自定义事件执行change,则必须将事件处理程序绑定到这两个事件,如下所示:

product.bind('change isVisibleProduct', function() {
    $(this).productSelect({/* ...parameters here ... */});
});

如果这不是您的意思,请澄清您的问题。

答案 1 :(得分:0)

只需使用jQuery bind将您想要的功能链接到任何类型的事件(事件自定义)。

myObject.bind('myEventName', function(){/*..*/});

myObject.bind('myEventName', myFunctionName);

然后用

触发
myObject.trigger('myEventName');

如果你的情况可以放

product.bind('isVisibleProduct', function(){
  this.selectProduct({
      target: note,
      url: 'product.php',
      data: { ajax: true }
  }).trigger('change'); // TO DO: to fire also on visibility change
});