DWZ(JUI)查詢帶回實現回撥函式
阿新 • • 發佈:2019-02-03
分析以及解決辦法
原來的功能只是將查詢帶回頁面的值帶回到輸入框裡,但實際專案要求帶回來資料後立即觸發JS函式,即實現回撥函式。
這裡有三個Q&A:
1.在哪裡觸發回撥函式最合適?
在帶回時觸發最合適。
2.帶回時怎麼獲取到回撥函式並執行?
給_lookup物件增加存放回調函式的屬性。
3.如何給lookup物件的回撥屬性賦值?
在放大鏡a標籤裡自定義回撥屬性,然後通過JQ的attr方法傳值到_lookup物件裡。
程式碼實現
//a標籤裡自定義回撥屬性callback
<a class="btnLook" href="xxx" lookupGroup="xxx " callback="yourFunc()" title="選擇xx"></a>
//在dwz.database.js裡給_lookup 增加回調屬性callback
var _lookup = {currentGroup:"", suffix:"", $target:null, pk:"id",callback:null,parentRefer:null,isChild:null};
//在dwz.database.js裡給設定_lookup物件的函式裡增加回調函式設定
lookup: function(){
return this.each(function (){
......
$this.click(function(event){
_lookup = $.extend(_lookup, {
......
//獲取a標籤裡的回撥函式
callback: $this.attr("callback")||"",
......
});
//在dwz.database.js裡的帶回方法裡增加觸發回撥函式的程式碼
$.extend({
bringBackSuggest: function(args){
......
//獲取回撥函式並觸發
var callback = _lookup['callback'];
if(callback!=null&&callback!='') {
try {
eval(callback);
} catch (e) {
}
}
......