【问题标题】:onChange in YUIYUI 中的 onChange
【发布时间】:2011-08-12 12:01:59
【问题描述】:

我们如何在 YUI 2 和 YUI3 中为 onChange 函数编写代码。

jQuery(':input[type=radio]').change(function(){

  var aType=jQuery(this).val();
  var numT= aType==1 ? "3" : "6" ;
  var aWidth=aType==1 ? "330px" : "660px" ;

});

【问题讨论】:

标签: javascript jquery yui


【解决方案1】:

在 YUI 3 中

Y.all('input[type=radio]').each(function (node) {
    node.on('change', function () {
        var val = this.get('value');
        ...
    });
});

// or
Y.all('input[type=radio]').on('change', function (e) {
    var val = e.currentTarget.get('value');
    ...
});

在 YUI 2.9 中(不再积极开发;使用 YUI 3)

// typical implementations alias Event or Event.on and
// Selector.query to shorter names
YAHOO.util.Event.on(
    YAHOO.util.Selector.query('input[type=radio]'), 'change', function (e) {
        var val = this.value;
    ...
});

【讨论】:

  • 谢谢!但是当我在 JSFiddle 中尝试这个时,它的警报值 1,2 这里是 URL jsfiddle.net/wasim117/cEYBv
  • 对不起!我打破了从不使用 nodelist.on() --delegation 更好的规则。您获得这两个值的原因是节点列表订阅中的“this”是节点列表,而不是接收事件的单个节点。不过,e.currentTarget 是节点。我已经更新了代码 sn-p。
  • 谢谢你,我正在使用 2.9,你的解决方案效果很好!顺便提一句。你也可以使用 .addListener(..) 而不是 .on(..)
  • @Luke for YUI 2.9 我认为Event.on 不会捕获稍后添加到表单中的元素,delegate 对 IE7 的change 有问题,关于其他的任何想法解决方案 ?我用委托尝试了blur,但它似乎不受支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多