天天看點

jQuery自定義事件和jQuery.extend

自定義事件:

trigger(type,[data]):

     type (String,Event,Object) : 一個事件對象或者要觸發的事件類型;

     data (Array) : (可選)傳遞給事件處理函數的附加參數;

$("p").click( function (event, a, b) {
  // 一個普通的點選事件時,a和b是undefined類型
  // 如果用下面的語句觸發,那麼a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]); 
           
$("ul").bind("myclick",function(event, prarm){
	alert(prarm.data[0]);
});

$("input[type=button]").bind("click",{"uname":"zhangsan","age":50},function(){
	if(arguments[0].data.age>=50){
		$("ul").trigger("myclick",{"data":["name","zhangsan"]});
	}
});
           

擴充:

jQuery.extend([deep],target,obj1,[objN]):

deep (可選) (Object) : 如果設為true,則遞歸合并。

target (Object) : 待修改對象。

object1 (Object) : 待合并到第一個對象的對象。

objectN (Object) : (可選) 待合并到第一個對象的對象。

合并 settings 和 options,修改并傳回 settings:

var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var news=jQuery.extend(settings, options);
alert(settings.validate);
           

合并 settings 和 options,傳回 settings但不修改:

var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var news=jQuery.extend({},settings, options);
alert(settings.validate);
           

繼續閱讀