1. 程式人生 > >js自定義方法直接申明式的使用以及在jquery的$(function(){})中使用的區別

js自定義方法直接申明式的使用以及在jquery的$(function(){})中使用的區別

有一個A頁面,作為公共的初始條件

開始時間 :<input type="text" id="starttime" class="ch_time" InitData="getYestoday" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})" IsRedundance="true"></input>
結束時間 :<input type="text" id="endttime" class="ch_time" InitData="getYestoday" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})" IsRedundance="true"></input>
zq:<select id="warId"></select>
cs:<select id="cityId"></select>
fgs:<select id="cp_channel" name="cp_channel">

	   </select>

然後在B頁面引入A頁面,但是其中的查詢條件需要新增一個,所以就想通過jquery的after方法新增,然後直接在js中申明呼叫,然後卻出現了問題
initSelect();
function initSelect() {
var html = "yw:<select id=\"source\"></select>";$("#cp_channel").after(html);
}

然後在B頁面的js中加入這樣的一段程式碼,問題得到解決
方式二:
$(function() {
	 //初始化查詢框
	 initSelect();
});

原因分析:
分別在這兩種情況下在控制檯列印
function initSelect() {
	var html = "yw:<select id=\"source\"></select>";
	$("#cp_channel").after(html);
	console.log($("#cp_channel"));
}
得到結果如下:
方式一得到的結果


方式二得到的結果


方式一沒有取得物件,方式二取得了物件,所以可以知道方式一的執行是在js一載入就會執行,而第二種是在頁面載入了才會執行