玩過一些jQuery零碎的東西,我似乎無法完全理解它。 我正在做的是循環瀏覽頁面上的項目,併爲它們應用自定義點擊處理程序。這樣當我填充頁面時,我只需要填寫正確的ID並且jQuery可以自動填充鏈接。每個jQuery - 綁定到所有元素而不是單個元素
我遇到的問題是兩個事件都是用相同的輸出觸發,我無法弄清楚爲什麼。我有2,我使用的按鈕,
<img id="LightButton11Of" src="images/lightbulb_off.png" style="width:32px;
height:32px; vertical-align:middle " alt="off" >
<img id="LightButton11On" src="images/lightbulb_on.png" style="width:32px;
height:32px; vertical-align:middle" alt="on">
和下面的代碼
$(document).ready(function(){
$("[id^=LightButton]").each(function(i,item){
if ($(this).attr('id').substr(13,2)=="On"){lightfunction="1";}
if ($(this).attr('id').substr(13,2)=="Of"){lightfunction="0";}
alert($(this).attr('id').substr(13,2));
numLight = $(this).attr('id').substr(11,2);
strLight = "*1*" + lightfunction + "*" + numLight + "##";
teststr = $(item).attr('id') + " - " + strLight;
alert(teststr);
$(this).bind("click",function(){
SendEvent("OWN","18",strLight,"OK");
});
});
});
警報(teststr)給出確切我期待的輸出,但它似乎當我綁定它實際上是綁定到所有元素,而不是每個循環迭代中的單數項。
我在做什麼錯了!?
乾杯,
Tim。
完美:)我本來整個字符串創建時沒有任何變量,並通過引入全局測試來使問題變得更糟,現在我可以回到它了! – emtark
我建議你總是用'var'聲明所有變量,即使是全局變量(在任何函數之外使用'var'聲明)。這樣一來,總是清楚應該有什麼範圍變量,很明顯,你已經有目的地創建了全局變量,而不是意外地將'var'放在一個函數中。 – nnnnnn