JAvascriptコールバック関数練習およびカスタムtoggle関数を使用して作成
5883 ワード
JAvascriptコールバック関数練習およびカスタムtoggle関数を使用して作成
昨日符号化の时に1つの业务の需要に出会ったのはAページで1つのボタンをクリックしてBページに着いて、Bページは1つの確定ボタンがあって、buttonを取り消して、クリックして確定してBページから选んだデータをAページに持ち帰って、クリックしてキャンセルしてAページに帰って、同僚にコンサルティングして、コールバックの関数の方式でこの机能を実现することを决めて、これは初めてこのような方法を使って、记录します;1つの要素に2つの関数をバインドする必要があり、2つの関数を切り替えると、jqueryのtoggle()メソッドが思い浮かび、結果的に失効し、自分でtoggle()メソッド、ソースアドレスを書いてみました
大体の考え方.
Bページで初めてbuttonをクリックしてある要素を選択し、もう一度クリックして削除する必要があるので、以前はjqueryにtoggle()の方法が実現できましたが、今はありません.そこでbuttonにデフォルトのvalueを設定し、切り替えをクリックするとvalueを変更し、value値を判断することでその方法を選択したいと思います.
この方法は良いlowを感じて、もっとネット上で探して、stackoverflowの上で1つの方法の方法の住所を見ました
しかし、私はこの方法をjqueryのextendの方法と書きたくありません.結局、現在のページだけで使います.そこで、jqueryの$定義を思い出して、真似しました.
これで、終わりました.ソースアドレス、最近よくソースコードを見て、収穫が大きいと感じて、
昨日符号化の时に1つの业务の需要に出会ったのはAページで1つのボタンをクリックしてBページに着いて、Bページは1つの確定ボタンがあって、buttonを取り消して、クリックして確定してBページから选んだデータをAページに持ち帰って、クリックしてキャンセルしてAページに帰って、同僚にコンサルティングして、コールバックの関数の方式でこの机能を実现することを决めて、これは初めてこのような方法を使って、记录します;1つの要素に2つの関数をバインドする必要があり、2つの関数を切り替えると、jqueryのtoggle()メソッドが思い浮かび、結果的に失効し、自分でtoggle()メソッド、ソースアドレスを書いてみました
大体の考え方.
/**
*init B ,testCallBack A , testCallBack init , data , ,javascript
*/
var init = function (callback){
if(!(typeof callback === "function")){throw Error("type error")}
var json = [{id:1,name:" "},{id:2,name:" "}];
callback(json);
};
var testCallBack = function(){
init(function(data){
console.log(data); //[{id:1,name:" "},{id:2,name:" "}]
});
}
Bページで初めてbuttonをクリックしてある要素を選択し、もう一度クリックして削除する必要があるので、以前はjqueryにtoggle()の方法が実現できましたが、今はありません.そこでbuttonにデフォルトのvalueを設定し、切り替えをクリックするとvalueを変更し、value値を判断することでその方法を選択したいと思います.
<button value="0" id="test_button"> button>
$("#test_button").bind("click",function(){
var val= $("#test_button").attr("value");
if(val===0){
function a(){};
$("#test_button").attr("value",1);
}else{
function b(){};
$("#test_button").attr("value",0);
}
});
この方法は良いlowを感じて、もっとネット上で探して、stackoverflowの上で1つの方法の方法の住所を見ました
$.fn.toggleClick = function(){
var functions = arguments ;
return this.click(function(){
var iteration = $(this).data('iteration') || 0;
functions[iteration].apply(this, arguments);
iteration = (iteration + 1) % functions.length ;
$(this).data('iteration', iteration);
});
};
しかし、私はこの方法をjqueryのextendの方法と書きたくありません.結局、現在のページだけで使います.そこで、jqueryの$定義を思い出して、真似しました.
var MytoggleClick = function(id){
this.id = id;
};
MytoggleClick.prototype.toggle = function(){
var functions = arguments ;
return this.id.click(function(){
var iteration = $(this).data('iteration') || 0;
functions[iteration].apply(this, arguments);
iteration = (iteration + 1) % functions.length ;
$(this).data('iteration', iteration);
});
};
これで、終わりました.ソースアドレス、最近よくソースコードを見て、収穫が大きいと感じて、