顯示具有 JavaScript 標籤的文章。 顯示所有文章
顯示具有 JavaScript 標籤的文章。 顯示所有文章

2011年1月10日 星期一

Jquery 超級無言的bug unbind click

這幾天遇到一個超級無言bug
講解一下我的架構
我是用GridView點擊Row或拖曳Row後
會將那一Row的詳細資料帶出來
我是用JS抓關鍵值後點擊一個Button來執行後端帶出值

之前用的很開心
但是
因為發現GridView更新後
就掛了
所以就將JS的CODE重新帶入
發現....
我拖曳部分正常
點擊部分!!!!
產生了越點執行越多次狀況
點第一次執行一次
點第二次執行兩次
點第三次執行四次....以此類推

因為拖曳跟點擊都是觸發同個BUTTON
只是差別在抓關鍵值方法不同而已
所以
怎會有這種差異性!!!!!
經過多方研究+Google到爛掉的時候
同事弄了一個方法
在執行前先加入!!!

$('#GVRowSelect').unbind("click");

靠!!!!!!!
搞定了!!!!!!!!
在他點擊前先將click給unbind掉
在執行
這樣就不會越做越多次的窘境
超無言的啦!!!!!

光這個鳥BUG抓了好幾天
暈!!!!!!!!!!!

2011年1月9日 星期日

JavaScript 呼叫後端 使用linkbutton

常常前端要呼叫後端
後端呼叫前端
所以
前端呼叫後端就用

linkbutton

__doPostBack('linkbutton', '');

2010年7月27日 星期二

Jquery 抓滑鼠座標值

直接看CODE

$(document).mousemove(function (e) {
sx = e.pageX + document.documentElement.scrollTop;
sy = e.pageY + document.documentElement.scrollLeft;
});

e.pageX ,e.pageY是頁面內的X,Y值
document.documentElement.scrollTop 是下拉捲軸後 Top值
document.documentElement.scrollLeft 是下拉捲軸後 Left值
這樣才能讓在下拉捲軸產生後 確保座標值無誤狀態

2010年7月14日 星期三

Jquery Tabs 更新後 會回到原本的頁面

如果沒有任何記錄情況下
Jquery的Tabs會回到最初的第1個頁面
但是很多情況是想要讓他保持在原本頁面的
這下子就要用到這招


var tabindex = 0;
function tabsfunction() {
$("#tabs").tabs({
select: function (event, ui) {
tabindex = ui.index;
}
});
$("#tabs").tabs('select', tabindex);
}

在JS最外層宣告個全域變數tabindex然後將每次點選後的index紀錄進去
這樣不管怎樣更新
它還是會乖乖的開啟你剛剛紀錄的tab了

2010年7月8日 星期四

JS Jquery textbox多個輸入框

遇到一個功能...有5個輸入框專寫意見的
如果輸入第一個 第二個才會開啟可輸入 第三個才會顯示出來
如果輸入第二個 第三個才會開啟可輸入 第四個才會顯示出來
以此類推
所以就寫了個Jquery的功能
讓前端來完成這件事情

因為我有寫MASTER所以會多了將ID傳至前端的方法變數 可以省略不看
直接打上你需要的ID給JQUERY就行了

$(function () {
var TextBoxAR1 = "#" + document.getElementById(GetClientId("TextBoxReason1")).id;
var TextBoxAR2 = "#" + document.getElementById(GetClientId("TextBoxReason2")).id;
var TextBoxAR3 = "#" + document.getElementById(GetClientId("TextBoxReason3")).id;
var TextBoxAR4 = "#" + document.getElementById(GetClientId("TextBoxReason4")).id;
var TextBoxAR5 = "#" + document.getElementById(GetClientId("TextBoxReason5")).id;

//1 TO 2
$(TextBoxAR1).keyup(function () {
if ($(TextBoxAR1).val() != "") {
$(TextBoxAR2).attr("disabled", "");
$("#Reason3").show();
}
else {
$(TextBoxAR2).attr("disabled", "disabled");
$("#Reason3").hide();
}
});
//2 TO 3
$(TextBoxAR2).keyup(function () {
if (($(TextBoxAR2).val() != "")) {
$(TextBoxAR3).attr("disabled", "");
$("#Reason4").show();
}
else {
$(TextBoxAR3).attr("disabled", "disabled");
$("#Reason4").hide();
}
});
//3 TO 4
$(TextBoxAR3).keyup(function () {
if (!($(TextBoxAR3).val() == "")) {
$(TextBoxAR4).attr("disabled", "");
$("#Reason5").show();
}
else {
$(TextBoxAR4).attr("disabled", "disabled");
$("#Reason5").hide();
}
});
//4 TO 5
$(TextBoxAR4).keyup(function () {
if (!($(TextBoxAR4).val() == "")) {
$(TextBoxAR5).attr("disabled", "");
}
else {
$(TextBoxAR5).attr("disabled", "disabled");
}
});

2010年6月9日 星期三

Asp.net Master 會更改元件id值問題

因為Master會自動更新元件id值
結果導致JavaScript的一些依造id判別的檔案全部都掛了 囧
所以就找方法

結果有大大分享這方法
試了一下 可以跑
就貼上來分享
^_^

後端的CODE

public void RenderJSArrayWithCliendIds(params Control[] wc)
{
if (wc.Length > 0)
{
StringBuilder arrClientIDValue = new StringBuilder();
StringBuilder arrServerIDValue = new StringBuilder();

// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;

// Now loop through the controls and build the client and server id's
for (int i = 0; i < wc.Length; i++)
{
arrClientIDValue.Append("\"" +
wc[i].ClientID + "\",");
arrServerIDValue.Append("\"" +
wc[i].ID + "\",");
}

// Register the array of client and server id to the client
cs.RegisterArrayDeclaration("MyClientID",
arrClientIDValue.ToString().Remove(arrClientIDValue.ToString().Length - 1, 1));
cs.RegisterArrayDeclaration("MyServerID",
arrServerIDValue.ToString().Remove(arrServerIDValue.ToString().Length - 1, 1));

// Now register the method GetClientId, used to get the client id of tthe control
cs.RegisterStartupScript(this.Page.GetType(), "key",
"\nfunction GetClientId(serverId)\n{\nfor(i=0; i "\n{\nif ( MyServerID[i] == serverId )\n" +
"{\nreturn MyClientID[i];\nbreak;\n}\n}\n}", true);
}
}


前端JS的CODE

var TextBox = document.getElementById(GetClientId("txtTest"));



出處:http://www.codeproject.com/KB/scripting/Masterpage-Javascript.aspx