摘要:使用與實現了一個比較簡單但功能齊全的增刪改查功能的后臺管理頁面,雖然只是一個頁面,但麻雀雖小五臟俱全,常用的功能都用到了,本例用原生的與配合使用,不考慮的重構性及打包,該例子零耦合,開箱即用。相關文章實現雙擊內容變為可編輯狀態
使用jquery與bootstrap實現了一個比較簡單但功能齊全的增刪改查功能的后臺管理頁面,雖然只是一個CRUD頁面,但麻雀雖小五臟俱全,JS常用的功能都用到了,本例用原生的jquery與bootstrap配合使用,不考慮JS的重構性及打包,該例子零耦合,開箱即用。
先看Demo:
一、用到的Jquery功能1、獲取/賦值input輸入值
$("#my_id").val();// 獲取 $("#my_id").val(“user_id");// 賦值
2、獲取/賦值textarea文本域輸入值
$("#my_textarea").val();// 獲取 $("#my_textarea").val("my_textarea");// 賦值 // 文本域顯示默認值,這個和input不一樣,不能通過value賦默認值
3、隱藏/顯示輸入框
$("#my_input").hide(); $("#my_input").show();
4、獲取表單form輸入的數據
$("#my_input").hide(); $("#my_input").show();
5、js相關方法
< a href="javascript:history.back()">回退 刷新
6、異步請求實例
// 1.簡單的異步請求 $.post
$.post("./express_statement.php",{act:"import_data", year:year,month:month}, function (data){
$("#tip").html("恭喜您,處理完成!");
console.log(data);
}, "json");
// 2. 復雜一點的請求 $.ajax (該請求可以設置更多的參數,如超時時間)
$.ajax({
url:url,
type:"POST",
data:{name:name},
timeout:30000,
dataType:"json",
success:function(data){
//var msgJson = eval(data); dataType為json,就不用轉了
if (msgJson.status == "0") {
$("#infoRefund").attr("style", "display:block")
} else {
alert("查詢錯誤,請稍后再試")
}
},
error:function(){}
});
從以上我們可以看出,$.post是$.ajax的一個簡化。簡化,所以就會省去很多參數。要用更多功能,就用$.ajax。
如果ajax返回的為json 字符串,則要轉為json對象:
var obj = eval("("+data+")"); if(obj.code > 0){ }
7、dom自動加載
jquery中的$(function(){...})什么時候執行?
這個是在頁面DOM文檔加載完成后加載執行的,等效于$(document).ready(function(){...});
優于window.onload,后者必須等到頁面內包括圖片的所有元素加載完畢后才能執行。
如果你不想讓它自動執行可以把這些放到一個函數中,想執行時調用就可以了
8、$.fn用法
在 jQuery 中,fn 其實就是 JavaScript 中 propotype 的一個別名,$ 是 jQuery 的別名,所以
$.fn.pluginName 等同于 jQuery.prototype.pluginName
$.fn.pluginName 表示創建一個 jQuery 的屬性,通俗的說是寫一個 jQuery 函數
pluginName 才是函數名
實例:
$.fn.setRedText = function() { return $(this).css("color", "red"); }; $("p").setRedText();
9、$.extend用法
Jquery的擴展方法extend是我們在寫插件的過程中常用的方法,該方法有一些重載原型,在此,我們一起去了解了解。
Jquery的擴展方法原型是:
extend(dest,src1,src2,src3...);
它的含義是將src1,src2,src3...合并到dest中,返回值為合并后的dest,由此可以看出該方法合并后,是修改了dest的結構的。如果想要得到合并的結果卻又不想修改dest的結構,可以如下使用:
var newSrc=$.extend({},src1,src2,src3...) //也就是將"{}"作為dest參數。
這樣就可以將src1,src2,src3...進行合并,然后將合并結果返回給newSrc了。如下例:
var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})
那么合并后的結果
result={name:"Jerry",age:21,sex:"Boy"}
也就是說后面的參數如果和前面的參數存在相同的名稱,那么后面的會覆蓋前面的參數值。
二、示例代碼示例前端active_list.html代碼:
活動列表
動作處理頁面active_action.php
0 ? 1 : 0;$.each遍歷方法使用
$("#b4").click(function(){ //alert($("select option:selected").text()); //必須 用這個 val()函數把每個值打印; //alert($("select option:selected").val()); //會彈出 選項1 ??? // 因為它取得不是文本框里的值 選項1^^,而是value的值選項1 var $objs=$("select option:selected"); /* $.each($objs,function(){ alert($(this).val()); });*/ /* $.each($objs,function(i,n){ // alert(n.value); alert($(n).val()); })*/ /* $objs.each(function(){ window.alert($(this).val()); })*/ $objs.each(function(i,n){ window.alert("ok"+$(n).val()); }) })八、JS實現雙擊內容變為可編輯狀態
在一些網站上我們經常看到交互性很強的功能。一些用戶資料可以直接雙擊出現文本框,并在此輸入新的資料即可修改,無需再按確定按鈕等。。
我在網上查了很多資料,但都有一個小bug,就是當獲取焦點后,光標的位置在文本框內容是開始處,這樣編輯時還需要用戶再重新選擇一下光標位置,這樣的交互感覺不好;后來查到新的資料解決了此問題,希望可以幫助到更多的人。
代碼部分:
注意:設置選擇文本的內容或設置光標位置
JS實現雙擊編輯可修改狀態
雙擊事件:ondblclick
替換div中的內容:
document.getElementById("spxx").innerHTML = res.content; // document $("#"+remark_id).html(remark); // jquery
jQuery中沒有innerText、innerHtml
發現如果我在div或者其他非表單的標簽中賦值,原本用普通的js就直接document.getElementById("id").innerHtml(或者其他幾個)就可以了。
但是在jQuery中不行
例如:
document.getElementById("t").innerHTML="ffffdffffdffffddd"; -----------A $("#t").innerHTML="sdsds"; -----------B document.getElementById("t") 獲得的是dom對象,所有對象都有innerHTML $("#t")獲得的是jquery對象,無innerHTML 所以我們可以這樣使用: $("#t").html("sdsds"); or $("#t")[0].innerHTML="sdsds";
如果是innerText,也類似就是把html改成Text即可。
相關文章:
JS實現雙擊內容變為可編輯狀態
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86585.html
摘要:此篇文章并未如何教你怎么面試的時候吹逼,而是給一點點建議,如何更聰明地達到目的。據不完全統計,基本都是做管理后臺改。不要太沉溺和糾結于技術,把重心移到業務能力上,踏踏實實做事。 前言 ??對于很多剛畢業或者大四的同學,都會有個困惑,我如何學PHP,為什么知識會那么雜,然后實習中公司大概需要哪些要求。此篇文章并未如何教你怎么面試的時候吹逼,而是給一點點建議,如何更聰明地達到目的。 實習可...
摘要:最近在做畢設,同學在做前端頁面的時候使用到和這些控件,然后自己又在刷題的時候遇到一個這個的實現,于是就自己去官網文檔上學習了一下,嘗試實現這個官方文檔代碼代碼效果如下圖示頂部結構頁面上的三個,增刪改新增修改刪除這里的框的 最近在做畢設,同學在做前端頁面的時候使用到JQuery、DataTable和Bootstrap這些控件,然后自己又在刷題的時候遇到一個這個demo的實現,于是就自己去...
摘要:值得一提的是擴展包不免費用于商業用途,作者用一種人類友好的方式說你使用這個擴展包就是應該去掙錢的,而不是免費的去工作這個擴展包收費美元。除了這些,還有五個沒有全面的審查的擴展包。最后,還有三個優質的包選擇于。 showImg(https://segmentfault.com/img/remote/1460000012312105?w=2200&h=1125); 開發者們都是懶惰的,不,...
閱讀 2780·2021-09-23 11:44
閱讀 1671·2021-09-13 10:24
閱讀 2619·2021-09-08 09:36
閱讀 1231·2019-08-30 15:54
閱讀 2248·2019-08-30 13:54
閱讀 3308·2019-08-30 10:57
閱讀 1844·2019-08-29 18:43
閱讀 3609·2019-08-29 15:10