может зависать, но не выбирать строку в таблице [duplicate]

Вы пробовали XnViewMP? Известно, что он работает с некоторыми файлами dds, но некоторые ошибки чтения также сообщаются. Вы не можете найти его в официальных репозиториях, но здесь: http://www.xnview.com/ru/xnviewmp/#downloads. Не беспокойтесь, это бесплатная, платная версия для Windows.

78
задан 14 October 2015 в 16:13

6 ответов

Просто быстрая проверка, если вы используете клиентский механизм шаблонов, такой как дескрипторы, ваш js будет загружаться после document.ready, следовательно, не будет элемента для привязки события, поэтому либо используйте обработчик onclick, либо используйте его на теле и проверить текущую цель

2
ответ дан 15 August 2018 в 16:46
  • 1
    так что я использую flask / jinja, и он не работает, если я не использую свойство onclick в HTML и отсылаю оттуда к функции в моем & lt; script & gt; – Richard Rich Steinmetz 23 July 2018 в 13:26

Ваш код может работать без document.ready (), просто убедитесь, что ваш скрипт находится после #clicker. Оформить эту демонстрацию: http://jsbin.com/aPAsaZo/1/

Идея в готовой концепции. Если вы уверены, что ваш скрипт является последним на вашей странице или он находится после затронутого элемента, он будет работать.

<!DOCTYPE html>
<html>
<head>


<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <script src="http://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>
  <a href="#" id="clicker" value="Click Me!" >Click Me</a>
  <script type="text/javascript">

        $("#clicker").click(function () {
            alert("Hello!");
            $(".hide_div").hide();

        });


</script>

</body>
</html>
20
ответ дан 15 August 2018 в 16:46
  • 1
    +1 - Ваш ответ объясняет, почему нужна функция document.ready(). – Kevin 2 February 2014 в 22:51
  • 2
    Это лучший ответ, потому что предложение о том, что скрипт jquery должно быть в функции document.ready (), вводит в заблуждение. Да, там безопаснее, но если вы настроили элемент html для функции jquery «на лету» (например, запросите строку таблицы в зависимости от того, какая кнопка нажата), она должна быть вне / после этой функции. Я ошибочно изменил имя целевого div для своих всплывающих надписей, а затем потратил несколько разочаровывающих часов на поиск ошибки сценария. Выучил большой урок. – johnlholden 7 May 2014 в 19:57
  • 3
    Это неправильный ответ, потому что код JS должен быть в заголовке DOM, а не в строке. Тот факт, что вы потратили несколько часов на поиск ошибки сценария, не является проблемой JS, ваша проблема не в том, чтобы правильно читать документы и не знать, как использовать инструменты отладки. – Andrey Shipilov 1 March 2016 в 06:52
  • 4
    @AndreyShipilov Кто сказал, что просто посмотрите на источник этой страницы и опуститесь вниз, вы увидите там код javascript. – SaidbakR 12 September 2016 в 11:56
  • 5
    @AndreyShipilov - do вы знаете, как использовать средства отладки для устранения этой проблемы? Тогда, пожалуйста, поделитесь своими знаниями с другими, а не оскорбляйте их. Старайтесь быть конструктивными и справедливыми. – Matt 28 August 2017 в 13:53

Вы можете использовать $(function(){ // code });, который выполняется, когда документ готов выполнить код внутри этого блока.

$(function(){
    $('#clicker').click(function(){
        alert('hey');
        $('.hide_div').hide();
    });
});
2
ответ дан 15 August 2018 в 16:46

Вы должны обернуть свой Javascript-код с помощью $(document).ready(function(){}); Посмотрите этот JSfiddle.

Код JS:

$(document).ready(function() {

    $("#clicker").click(function () {
        alert("Hello!");
        $(".hide_div").hide();    
    });
});
5
ответ дан 15 August 2018 в 16:46

Я нашел лучшее решение для этой проблемы, используя ON с $ (document).

 $(document).on('click', '#yourid', function() { alert("hello"); });

для начала id, см. ниже:

$(document).on('click', 'div[id^="start"]', function() {
alert ('hello'); });

наконец после 1 неделю мне не нужно добавлять onclick triger. Надеюсь, это поможет многим людям

25
ответ дан 15 August 2018 в 16:46
  • 1
    Ах спасибо, выше не работает для меня, но это так! (возможно, какое-то странное взаимодействие с угловым и маршрутизирующим) – Flink 8 November 2016 в 16:05
  • 2
    Как и Флинк, я также решил проблему с этим. Спасибо .. 100 upvote .. – Parker 25 September 2017 в 14:35
  • 3
    Он называется делегированием и необходим для динамически вставленного или перемещенного содержимого. – mplungjan 27 April 2018 в 14:43

Убедитесь, что на вашей кнопке ничего нет (такой div или trasparent img), который держится от нажатия кнопки. Это звучит глупо, но иногда мы думаем, что jQuery не работает, и все, что есть, и проблема заключается в позиционировании элементов DOM.

3
ответ дан 15 August 2018 в 16:46

Другие вопросы по тегам:

Похожие вопросы: