日期:2014-05-16  浏览次数:20381 次

jquery1.8跟1.3的兼容问题
bnt._click = eval(obj.attr("onclick"));

这句话在1.3里面正常
换成jquery.1.8.js里面就直接执行单击事件了

全部代码
/*
 * Title:
 * Description:
 * Aucthor: 曾宪斌
 * Email: zengxianbin@gmail.com
 * Create Date:2009-06-18
 * Copyright 2009
 */ 
document.write('<link href="style/button.css" rel="stylesheet" type="text/css" />');
document.write('<link href="style/icon.css" rel="stylesheet" type="text/css" />');
(function($){
$.fn.btn = function(){
var btn = this.data("_self");;
if(btn){
return btn;
};
this.init = function(){
var obj = $(this);
var id=$(this).attr('id')||"gen"+Math.random();
var icon = $(this).attr('icon')||'icon-btncom';
var bntStr=[
'<table id="',id,'" class="z-btn" cellSpacing=0 cellPadding=0 border=0><tbody><tr>',
'<TD class=z-btn-left><i>&nbsp;</i></TD>',
'<TD class=z-btn-center><EM unselectable="on">',
'<BUTTON class="z-btn-text ',icon,'" >',$(this).attr('value'),'</BUTTON>',
'</EM></TD>',
'<TD class=z-btn-right><i>&nbsp;</i></TD>',
'</tr></tbody></table>'
];
var bnt = $(bntStr.join('')).btn();
bnt._click = eval(obj.attr("onclick"));


bnt.disable();
if(obj.attr("disabled"))
bnt.disable();
else bnt.enable();
$(this).replaceWith(bnt);
bnt.data("_self", bnt);  
return bnt;
};
this.enable = function(){
this.removeClass("z-btn-dsb");
this.click(this._click);
this.hover(
  function () {
    $(this).addClass("z-btn-over");
  },
  function () {
    $(this).removeClass("z-btn-over");
  }
)
};
this.disable = function(){
 this.addClass("z-btn-dsb");
 this.unbind("hover");
 this.unbind("click");
};  
return this;
};

$(function(){
$("input[type='button']").each(function(){
$(this).btn().init();
});
$("input[type='reset']").each(function(){
$(this).btn().init().click(function(){
var form = $(this).parents("form")[0];
if(form)
form.reset();
});
});
$("input[type='submit']").each(function(){
$(this).btn().init().click(function(){
var form = $(this).parents("form")[0];
if(form)
form.submit();
});
});
})
})(jQuery);

------解决方案--------------------
试一下 bnt._click = function(){eval(obj.attr("onclick"))};