Все это происходит при загрузке страницы без вызова события вызова:
Вот обновленный код. В этом я пытаюсь проверить подключение к Интернету или нет. Если соединение отключено, тогда ссылка будет автоматически отключена (без кликабельности), а bgcolor изменится на красный.
И если соединение отключено, ссылка будет автоматически активирована (кликабельна), и bgcolor изменится на зеленый. Однако мне не хватает чего-то:
код:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.css">
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.js"></script>
</head>
<style>
.connected{ background-color:green;}
.diconnected{background-color:red;}
#link1{
width: 100px;
height: 200px;
border: #0FF 1px solid;
}
</style>
<body>
<a href="#" id="link1"><img src="images/network.png"> My status</a>
</body>
<script>
window.onload=function() {
var tId = setInterval(function() {
document.getElementById("link1").disabled=!navigator.onLine;
},500);
if (navigator.onLine) {
$("link1").bind('click', true).addClass('connected').removeclass('diconnected');
} else {
$('.link1').unbind('click', false);
$(".link1").bind('click', true).addClass('diconnected').removeclass('diconnected');
}
}
</script>
</html>
Спасибо за помощь.
вы можете написать следующее перед закрытием тега body =>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>
Вы можете проверить доступность следующим образом
function hostReachable() {
// Handle IE and more capable browsers
var xhr = new ( window.ActiveXObject || XMLHttpRequest )( "Microsoft.XMLHTTP" );
var status;
// Open new request as a HEAD to the root hostname with a random param to bust the cache
xhr.open( "HEAD", "//" + window.location.hostname + "/?rand=" + Math.floor((1 + Math.random()) * 0x10000), false );
// Issue request and handle response
try {
xhr.send();
return ( xhr.status >= 200 && xhr.status < 300 || xhr.status === 304 );
} catch (error) {
return false;
}
}
Прежде всего, если у пользователя нет подключения к Интернету, как вы можете загружать библиотеку jQuery из внешнего источника? Нет интернет = нет веб-страницы.
Я собираюсь догадаться, что это расположено в интрасети/сети какого-либо типа, доступной без подключения к Интернету, и если это так, вам нужно будет сами загрузить библиотеки jQuery и загрузить их на локальный сервер, к которым к ним можно получить доступ сеть.
Во-вторых, вы неправильно указали свой идентификатор и класс.
$("link1") // Wrong
$("#link1") // Right
Они должны быть изменены, чтобы jQuery знал, что он указывает на правильную вещь.
.unbind('click', false)
и.bind('click', true)
?<link1>
, я предполагаю, что вы забыли<link1>
точку