Ответ 1
Проверьте следующие шаги.
- Включили ли вы jquery
- Проверить наличие ошибок в firebug
Эти проблемы должны решить проблему
Я пытаюсь запустить jQuery и WebMethods с помощью ASP.NET; Я добавил ScriptManager на главную страницу , а контент на странице содержания
<asp:Content ID="ch" ContentPlaceHolderID="cHead" runat="server">
<script language="javascript" type="text/javascript">
$(document).ready(function () {
alert("hi");
});
</script>
</asp:Content>
Однако это никогда не срабатывает, что мне не хватает?
Проверьте следующие шаги.
Эти проблемы должны решить проблему
Одна из возможностей, когда ready
перестает работать, заключается в том, что у вас есть код javascript где-то, который бросает исключение в вызов $(document).ready(...)
или $(...)
, который останавливает обработку остальных блоков ready
. Определите одну страницу, на которой это происходит, и проверьте ее на возможные ошибки в других местах.
Вместо этого:
$(document).ready(function() { /* your code */ });
Используйте это:
jQuery(function($) { /* your code */ })(jQuery);
Это более красноречиво и делает то же самое, он также не зависит от переменной $
как объекта jQuery.
Это произойдет, если на главной странице есть HTTPS, а исходный путь к javascript - HTTP. Оба протокола должны быть одинаковыми, HTTPS. Значок "tail tail" будет проверять под Firebug и заметить, что JS "запрещен доступ".
У меня была копия, вставившая мой встроенный js
из другого проекта .php
, внутри этого блока кода был некоторый код php
, выводящий некоторое значение, теперь, поскольку переменная не была определена в моем новом файле, это создавал типичный php
undefined warning/error
, и из-за этого код js
перепутался и не отвечал на какое-либо событие, даже alert("xyz");
терпел неудачу! Хотя erronous линия была ближе к концу файла, все равно js
тоже просто умрет,
без ошибок!!! > (
Теперь одна путаница в том, что консоль/вывод отладчика не давала никаких подсказок/ошибок/предупреждений, js
умирал молча.
Поэтому попробуйте проверить, есть ли php
встроенный код с js
и посмотреть, выводит ли он какую-либо ошибку. После удаления/сортировки ваш js
должен работать нормально.
function pageLoad() { console.log('pageLoad'); $(document).ready(function () { alert("hi"); }); };
его ScriptManager ajax создает проблему вместо этого используйте pageLoad() вместо
Одна возможность, посмотрите:
<script language="javascript" type="text/javascript" src="./jquery-3.1.1.slim.min.js" />
против
<script language="javascript" type="text/javascript" src="./jquery-3.1.1.slim.min.js"></script>
Первый метод на самом деле ошибочен, однако браузер вообще не жалуется. Вы должны быть уверены, что действительно закрываете тег javascript соответствующим образом.
- Проверьте, что ваш скрипт должен быть записан или загружен после ссылки jQuery.
<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
//after link >> write codes...
<script>
$(document).ready(function(){
//your code
})(jQuery);
</script>
У меня была похожая проблема, но я решил ее следующим образом:
// wait until DOM is loaded
$(document).ready(function(){
console.log("DOM is ready");
// wait until window is loaded (images, links etc...)
window.onload = function() {
console.log("window is loaded");
var your_html_element = document.getElementById("your_html_element_ID"),
};
});