css 触发事件,调用.css()后触发事件(保存当前样式)?

但考虑这件事,在我看来,后一个更简洁的方法是让用户定义的onSuccess回调为好,而不是使用。 css,让用户定义的两个类的成功和错误的情况下,并将它们设置在元件上。

例子:

(function($) {

$.fn.attach = function(options, isError) {

var opt = $.extend({

onError : function(message) { // Default function for errors

$(this).html('Error: ' + message + '.');

},

onSuccess: function(message) {

$(this).html('Success');

},

errorClass: 'error',

successClass: 'success'

}, options);

// Loop each selection item

this.each(function() {

var method = 'onSuccess',

cssClass = 'successClass';

if(isError) // An error occurred, call opt.onError

{

method = 'onError';

cssClass = 'errorClass';

return true; // End of the current element process

}

opt[method].call(this, 'Message');

$(this).removeClass(cssClass === 'successClass' ? opt.errorClass : opt.successClass)

.addClass(opt[cssClass]);

});

};

})(jQuery);

请注意,我也改变call($(this),...)到call(this, ...)这样回调行为方式作为传统的回调一样。

然而,回答说这个问题:为了让css触发一个事件,你可以用的功能,像这样:

(function($) {

var orig_css = $.fn.css;

$.fn.css = function() {

var result = orig_css.apply(this, arguments);

if(arguments.length === 2) { // CSS property was set

$(this).trigger('css_changed'); // or whatever event you want to trigger

}

return result;

};

}(jQuery));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值