Соединение данных к элементу DOM для jQuery

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

Брат настаивает, что

ESC / P не предназначен для двунаправленной связи.

blockquote>

, который представляет собой загрузку парящей BS, видя как Brother MADE их реализация двунаправленная. Это то, что говорится в документации! Прочитайте это для себя в документации ESC / P, которую они предоставляют.

Запрашивает состояние принтера. Состояние принтера составляет 32 байта.

blockquote>

Так что я уже поймал их, которые лгали или были некомпетентны.

Следующая ложь / некомпетентность:

А именно то, что вы сообщили, соответствует нашим спецификациям.

blockquote>

Мне бы очень хотелось увидеть эти спецификации, которые они здесь цитируют. Единственное, что я до сих пор нашел, - это раздел 5 «Дополнительные функции» в моем руководстве, в котором есть параграф «Команды ESC / P», в котором они ссылаются на упомянутое руководство ESC / P. В этом руководстве конкретно говорится:

Эта информация предоставляется при условии, что пользователь полностью понимает используемую операционную систему и базовые знания RS-232C, USB или Ethernet в среде разработчика.

blockquote>

В разделе 8 «Использование интерфейсных кабелей» говорится, что кабели RS-232C (последовательный) и RJ-45 (Ethernet) не являются стандартными аксессуарами и что невозможно подключить RS-232C и USB-кабель к тому же принтеру одновременно. Затем есть несколько инструкций по установке на компьютерах с MS Windows, и это все.

В их FAQ ничего не упоминается ( https://www.brother.co.jp/eng/dev/command/faq/index.aspx ), за исключением использования SNMP (который не делает работать на этом принтере, потому что порт 161/162 даже не открыт), и их сетевая ссылка также отключена ни одного упоминания об ESC / P). Мне серьезно интересно, слишком ли я глуп, чтобы найти это, или они вытащили это из своих ар, просто чтобы не иметь с этим дело.

1118 И не говорите мне, что они этого не сделают. Этот принтер также запускает веб-сервер на порту 80, который имеет подтвержденный secvuln ( https://threatpost.com/tag/debut-embedded-web-server/ ).

Но затем они фактически доходят до сути проблемы здесь:

Кроме того, наша спецификация никогда не переворачивается при использовании Netwrokd, даже если ошибка не возникает

blockquote> [1121 ] Эта небольшая часть английского языка здесь, вероятно, должна означать:

Даже если произошла ошибка, наше оборудование не отправляет отчеты о состоянии через Ethernet.

blockquote>

, который объяснит , почему принтер хранит молчание. Однако я не верю, что это часть их спецификации, которую я даже не смог найти; Я верю, что их снова поймали с брюками, и отказываюсь это признать. Не должно иметь никакого значения, как вы подключаетесь к устройству - Ethernet, последовательному порту или USB - до тех пор, пока работает транспортный уровень, что, очевидно, имеет место, поскольку я могу отправлять на принтер другие команды. Однако это предполагается использовать на разных машинах в одной сети. Почему у них даже есть порт Ethernet, если микропрограмма не может отправить отчет о состоянии ? Кто придумал эту идею?

Честно говоря, я могу только отговорить людей от приобретения устройств Brother. Это второй принтер, который я видел в этой компании, который просто не работает через Ethernet, и что хорошего в принтере, если вы не можете запросить его состояние, чтобы определить, хотите ли вы отправить ему работу? И они продают эти ненадежные машины за 600 € за штуку.

5
задан Soldarnal 12 December 2008 в 22:45
поделиться

4 ответа

JQuery.data позволяет Вам связать словарь к элементу DOM. Эти данные могут быть установлены с помощью jQuery:

<a class="clicker">Click</a><br/>
<a class="clicker">Click</a><br/>
<a class="clicker">Click</a><br/>
<a class="clicker">Click</a><br/>

<script language="javascript" type="text/javascript">
    var values = new Array("311", "412", "583", "624");
    $(".clicker").each(function(i, e) {
       $(this).data('value', values[i]).click(function(e) { 
         f($(this).data('value'));
       });
    });
</script>

или (начиная с jQuery 1.4.3) использование данных HTML5 - атрибуты, которые работают даже в non-HTML5 документах:

<a class="clicker" data-value="311">Click</a><br/>
<a class="clicker" data-value="412">Click</a><br/>
<a class="clicker" data-value="583">Click</a><br/>
<a class="clicker" data-value="624">Click</a><br/>

<script language="javascript" type="text/javascript">
    $(".clicker").click(function(e) { 
       f($(this).data('value'));
    });
</script>
3
ответ дан 13 December 2019 в 05:43
поделиться

Вы могли использовать идентификационный атрибут как "кликер 123" затем синтаксический анализ число. Я обычно делаю это или использую атрибут 'рэла'.

Так, в сущности нет никакого лучшего способа сделать это, что я знаю о. Я надеюсь, что этот поток доказывает меня неправильно.

4
ответ дан 13 December 2019 в 05:43
поделиться

Я сожалею, но если Вы уже заполняете тег высокого звука, мне не удается видеть, как задержка присвоения onclick обработчика к jQuery на самом деле покупает Вас что-либо. Не это просто случай "Теперь, когда у меня есть молоток, каждая проблема похожа на гвоздь". Я думаю, что метод jQuery лучше всего используется, когда действие не зависит от дополнительных данных, чем, что может естественно быть получено из содержания, например, определения класса, типа тега, и т.д.

1
ответ дан 13 December 2019 в 05:43
поделиться

Лучше всего использовать новую функцию HTML5: атрибут data -... -атрибут.

Ваш html-код будет выглядеть так:

<a class="clicker" data-mynumber="311">Click</a>

Затем вы можете использовать el.attr ('data-mynumber') для получения данных.

Вместо mynumber вы можете выбрать любое имя.

Это работает во всех браузерах.

4
ответ дан 13 December 2019 в 05:43
поделиться
Другие вопросы по тегам:

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