方法和原理就是:
- 你本身是無法阻止文件域的onchange事件多次 被 觸發的, change(function(){....}); 方法會被多次執行的, 這個是無法改變的!
- 你可以做的是: 當每次 執行change()方法的是, 通過一個標志變量, 來判斷change方法是否已經被執行, 當由 標志變量 探測到change方法 已經被執行過, 時就直接讓 change方法退出
function upGo(){
$('#upload').click(); // 觸發fie域點擊事件動作
var changeExed = false; // 這個是標志變量, changeExed: change is executed?
$('#upload').change(function (ev){
if(!changeExed){
changeExed = true; // 執行一次后, changeExed就設置為true, 所以該代碼段 只能執行一次, 后面如果發生的 change事件執行的代碼 為空! 但是, 第二次及以后的change事件還是 發生 並 是執行了的!
var uf = ev.currentTarget.files[0];
var fname = uf.name;
.......
}; // change 方法結束
/// 要注意 在change方法中, 返回fale 並不能讓change代碼只執行一次, 只是: return false 阻止瀏覽器的默認行為 不能???
===========================================================
在js的split方法中, 如何寫正則表達式規則的形式?
- 注意的是, js.split 方法中, 正則表達式, 一定要在兩邊 加上 斜杠 /..../, 其次, 不能在正則表達式上 加 引號! 因為加上引號后, js就認為是字符串, 不是正則表達式了
- 讀取的文本內容 中可能有 html標簽, 這些標簽在 容器中會被hmtl 執行, 所以 要把這些標簽進行 轉換 成無意義的純字符.
reader.onload = function(){
content = this.result;
// 在這里處理讀取到的文本內容
var arr = content.split(/\r\n|[\n\r]/); 就是這里的關鍵
var strCont ='';
for(var i=0, j=arr.length; i<j; i++){
strCont += '<span>' + arr[i] + '</span><br>';
}
$('div.uc>p').html(strCont);
$('div.showuc').css('display','block');
};
=====================
js如何刪除數組中的某個元素?
- 使用 splice(注意不是 slice 切片函數), splice(start, howmany)是用來刪除/替換/添加的函數. 從start索引開始刪除howmany個數組元素. splice函數會改變數組本身, 所以,不用返回值接受 ,
arr.splice(arr.length-1,1)
- 使用delete 方法, 但是 該方法把某個元素 只是變成 'undefined'值, 數組的長度也不會改變
- 使用 pop()方法, 該方法刪除最后一個元素, 同時返回最后一個元素的值, 這里你不要/丟棄 返回值就好了.
css中的overflow?
-
css的屬性 如果是多個單詞, 都是用 連字符- 來連接, 不是 pascal方法的大小寫駝峰法: 比如: style="max-heigth: 300px;", 不能寫成 maxHeight: 300px;
-
overflow的 scroll和 auto區別: 前者不管寬高是否超出都顯示 滾動條; 后者是通常不顯示滾動條, 只有超出寬高才顯示滾動條
==============
元素的hidden隱藏后, 如何顯示?
- 要用 removeClass('hidden')來顯示出來, 不能用 設置css('display','inline-block')來顯示, 因為這時候, hidden類並沒有被刪除;
- 只有用 display: none隱藏的元素, 才可以用 display: block來顯示出來
===============
所謂瀏覽器的默認行為?就是 在元素上 並沒有 顯式的 綁定什么事件, 但是卻發生的 行為behavior, 比如:
- 點擊鏈接發生的跳轉事件/
- 點擊 input type=submit元素 發生的表單提交事件/
- 在鍵盤輸入的字符自動添加到text類型的input中, 都是 瀏覽器的默認行為
<a href="http://www.abc.com">click me to jump</a>
<script>
var aa=document.getElementsByTagName('a')[0];
aa.addEventListener('click', function(e){
e.preventDefault(); // 這樣, 點擊a不會發生跳轉
})
</script>