JQuery總結(jié)部分
1、在<script>中,如果是需要頁面打開就要載入的部分,需要先寫
$(function(){
});
然后把需要變成EasyUI的input或div等的ID寫入其中,否則他們不能變成你想要的插件。當然,其他的函數(shù),如onclick(),就要寫到其外了。
2、$.get()
$.get()是簡化的$.ajax()。用法如
$(“button”).click(function(){
$.get(“demo_ajax_load.txt”, function(result){
$(“div”).html(result);
});
});
這里有2個知識點:
a、如果要得到服務(wù)器返回的值,就必須用后面加函數(shù)的方法。原因是:它是異步調(diào)用,JS會在它沒有得到遠程服務(wù)器的值之前,就往下執(zhí)行了,會導致下面的值并不是你想要的。比如:
var str=”";
$.get(“index/serTime”,function(data){str=data;});
alert(str);
你會發(fā)現(xiàn)最后的str并不是從服務(wù)器中取回來的結(jié)果。因為在服務(wù)器還未得到值之前,就已經(jīng)alert了。但是如果你第二次執(zhí)行這個語句的話,就會得到上次從服務(wù)器返回的內(nèi)容。
解決這個問題可以以如下方式改寫:
$.get(“index/serTime”,function(data){alert(data);});
或者,也可以使用下面的辦法。
b、用$.ajax代替簡化版的$.get
$.get 相當于:
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
$.get傳輸參數(shù)的用法:
$.get(“test.php”, { name: “John”, time: “2pm” } );
$.ajax的用法:
$(“#ButAjax”).click(function() {
$.ajax({
type: “POST”, //默認是GET
url: “/Test/getPerson”,
data: “ID=1&FirstName=C&LastName=HY”,
async: true, //異步
cache: false, //不加載緩存
success: function(obj) {
alert(obj.ID + obj.FirstName + obj.LastName + obj.Man);
},
error: function() {
alert(“請求失敗”);
}
});
});
可見,$.get和$.ajax,默認都是異步調(diào)用的。所以如果想讓JS語句在本句執(zhí)行完之后,再執(zhí)行下一條語句,可以把async設(shè)為false,即不要異步調(diào)用。所以,同樣的:
var str=”";
$.ajax({url:”index/serTime”,async:false,success:function(data){str=data;});
alert(str);
這樣,其結(jié)果就是你想要的了。就是說,如果以后在頁面處于打開的狀態(tài)下,再點擊按鈕,想要給什么控件賦值的話,就要把async改為false。
3、javascript:void(0)與javascript:;的意思
在<a>標簽中,廢除原來的鏈接,而使用JS函數(shù)的方法有3種。
a、<a href=”#” onclick=”myclick()”>鏈接</a>,這種方式一般不建議使用,因為會在地址欄出現(xiàn)#或?qū)е缕渌绊懹脩趔w驗的問題。
b、<a href=”javascript:void(0)” id=”a1″>鏈接</a>,這種方式在js腳本中設(shè)置其點擊事件即可
$(function(){
$(“#a1″).click(function(){alert(“鏈接a1″);});
});
c、<a href=”javascript:;” id=”a2″>鏈接</a>,這種方式類似于上一種,同樣在js腳本中設(shè)置其點擊事件即可,但目前來講用這個的比較多,據(jù)說是第二種雖然沒有返回值但還是執(zhí)行了,這樣寫的話就不執(zhí)行任何代碼。
$(function(){
$(“#a2″).click(function(){alert(“鏈接a2″);});
});
easyUI總結(jié)部分
1、寫法
easyUI可以有2種寫法。一種是直接寫標簽,方法是在標簽中加入: class=”easyui-類型”,如class=”easyui-tabs”。另外一種寫法是現(xiàn)用標簽寫個簡單的input 或 div,然后在JS文件中寫代碼,如:
$(“p”).panel()
2、easyUI 的屬性、方法、事件、構(gòu)造函數(shù)
a、在JS寫UI的構(gòu)造函數(shù)時,好像只能寫JS的屬性或事件,如:
$(‘#tt’).tabs({
border:false,
onSelect:function(title){alert(title+’is selected’);}
});
b、屬性的取值、賦值 寫法
$(‘p’).panel().title
以上這個寫法只是取值的寫法。如果需要賦值,還是需要再寫一遍構(gòu)造函數(shù)
$(‘p’).panel({title:”這是改變后標題”});
通過這樣的方式,就可以只更改一個屬性,其他屬性不變。
c、方法的寫法
無參數(shù)方法的寫法:
$(‘tt’).tabs(‘getSelected’);
有參數(shù)方法的寫法:
$(‘p’).panel(‘move’,{left:100,top:100} );
3、Tabs插件
Tabs就是多個panel的組合。在實際中,添加tab的方法如下:
function addTab(tit){
if(!$(‘#tt’).tabs(‘exists’,tit)){ //看這個title是否存在
$(‘#tt’).tabs(‘a(chǎn)dd’,{title:tit, content:’Tab Body’ });
}}
4、DataGrid 編輯
a、分頁語句
select * from(
select rownum r, field1,field2 from table_name where rownum > = page* rows )where r < (page-1) * rows
b、雙擊行,進行操作
在構(gòu)造函數(shù)中寫:
onDblClickRow: function() {
var selected = $(‘#test’).datagrid(‘getSelected’);
if (selected){
window.open(“DataView.action?Id=”+selected.ID);
}}
c、刪除
function DelAff(){
$.messager.confirm(‘確認’,'是否真的刪除?’,function(r){
if (r){
var selected = $(‘#test’).datagrid(‘getSelected’);
if (selected){
var index = $(‘#test’).datagrid(‘getRowIndex’, selected);
$(‘#test’).datagrid(‘deleteRow’, index);
DeleteSubmit(selected);
}
}
});
}
function DeleteSubmit(selected)
{
var url=”DataDelete.action?Id=”+selected.ID;
$.post(
url
);
}
這樣頁面的刪除和數(shù)據(jù)庫中的刪除都實現(xiàn)了。