我有一段代碼,我希望每10秒左右執行一次,同時還要按一下按鈕單擊事件。我應該創建一個函數來節省編碼重複嗎?我會在頁面上有很多按鈕來觸發這段代碼,但是我意識到我可以使用類選擇器來觸發代碼。我需要定時器間隔,因爲第三方將能夠更改代碼正在檢查的值,我不關心定時器是否超級準確。jquery創建自己的函數?
如何將代碼更改爲函數?我已經看到了一些創建函數的例子,但我沒有看到符合我的要求的任何東西。
//This Ajax checks the current on/off status of the passed X10 code
$('img.checkStatus').each(function(i, obj) {
$x10Device = $(this).data("x10");
var data="url=http://192.168.0.34:81/tenHsServer/tenHsServer.aspx? t=ab&f=DeviceStatus&d=" + $x10Device ;
$.ajax({
url:"urlencode.php",
data: data,
type: "POST",
success: function(data) {
myd = $('<span />').html(data).find("#Result").text();
var Nmyd = myd.charAt(3);
if (Nmyd == '2'){
$('img').attr('src','lightbulbon.png')
}
else{
$('img').attr('src','lightbulboff.png')};
},
error: function (request, status, error) {
alert(request.responseText);
}
});
});
});
感謝您的任何想法和幫助
_「我應該創建一個函數來節省編碼重複嗎?」_ - 是的。 – nnnnnn
您可以使用函數funName(argList,...){code here}'定義一個函數,任何在您的函數中應該變量的東西都應該作爲參數傳遞給它。詳細瞭解功能:http://eloquentjavascript.net/chapter3.html。 –
你確定顯示的代碼有效嗎?我注意到在使用'$('img')。attr('src','lightbulbon.png')'的Ajax成功處理程序中,它將頁面上每個img元素的src設置爲相同的東西。 – nnnnnn