Любой родитель, который существует в момент привязки события, и если ваша страница динамически создавала элементы с помощью кнопки имени класса, вы привязывали бы событие к родительскому, который уже существует
$(document).ready(function(){
//Particular Parent chield click
$(".buttons").on("click","button",function(){
alert("Clicked");
});
//Dynamic event bind on button class
$(document).on("click",".button",function(){
alert("Dymamic Clicked");
});
$("input").addClass("button");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="buttons">
<input type="button" value="1">
<button>2</button>
<input type="text">
<button>3</button>
<input type="button" value="5">
</div>
<button>6</button>
Попробуйте это:
awk 'NR==1{sub(/^\xef\xbb\xbf/,"")}{print}' INFILE > OUTFILE
На первой записи (строке) удалите символы спецификации. Распечатайте каждую запись.
Или немного короче, используя знание о том, что действие по умолчанию в awk должно печатать запись:
awk 'NR==1{sub(/^\xef\xbb\xbf/,"")}1' INFILE > OUTFILE
1
- это самое короткое условие, которое всегда оценивает
- ADDENDUM -
Частота юникодного байта (BOM) FAQ
g0] включает следующую таблицу, в которой перечислены точные байты спецификации для каждой кодировки:
Bytes | Encoding Form
--------------------------------------
00 00 FE FF | UTF-32, big-endian
FF FE 00 00 | UTF-32, little-endian
FE FF | UTF-16, big-endian
FF FE | UTF-16, little-endian
EF BB BF | UTF-8
Таким образом, вы можете видеть, как \xef\xbb\xbf
соответствует байтам спецификации EF BB BF
UTF-8
из приведенной выше таблицы.
Я знаю, что вопрос был направлен на unix / linux, подумал, что стоит упомянуть хороший вариант для unix-challenge (на окнах с пользовательским интерфейсом). Я столкнулся с той же проблемой в проекте WordPress (спецификация вызывала проблемы с rss-каналом и проверкой страницы), и мне пришлось изучить все файлы в довольно большом дереве каталогов, чтобы найти ту, которая была с спецификацией. Нашел приложение под названием Replace Pioneer и в нем:
Batch Runner -> Поиск (чтобы найти все файлы в подпапках) -> Replace Template -> Binary remove BOM (там это готовый шаблон поиска и замены для этого).
Это было не самое элегантное решение, и потребовалось установить программу, которая является недостатком. Но как только я узнал, что происходит вокруг, он работал как шарм (и нашел 3 файла из примерно 2300, которые были с BOM).
Использование GNU sed
(в Linux или Cygwin):
# Removing BOM from all text files in current directory:
sed -i '1 s/^\xef\xbb\xbf//' *.txt
В FreeBSD:
sed -i .bak '1 s/^\xef\xbb\xbf//' *.txt
Преимущество использования GNU или FreeBSD sed
: -i
означает «на месте» и будет обновлять файлы без необходимости перенаправления или странных трюков.
На Mac:
Это решение awk
в другом ответе works , но команда sed
выше не работает. По крайней мере, в документации Mac (Sierra) sed
не упоминается поддержка шестнадцатеричного экранирования ala \xef
.
Аналогичный трюк может быть достигнут с любой программой путем подключения к инструменту sponge
из moreutils :
awk '…' INFILE | sponge INFILE
10.11.6
это не работает, но официальный ответ stackoverflow.com/a/1068700/9636 отлично работает.
– Heath Borders
13 September 2016 в 15:54
Не awk, но проще:
tail -c +4 UTF8 > UTF8.nobom
Чтобы проверить спецификацию:
hd -n 3 UTF8
Если присутствует спецификация, вы увидите: 00000000 ef bb bf ...
cat file1.utf8 file2.utf8 file3.utf3 > allfiles.utf8
будет сломан. Никогда не используйте спецификацию на UTF-8. Период.
– tchrist
17 March 2012 в 20:51
hd
недоступно в OS X (начиная с 10.8.2), поэтому для проверки спецификации UTF-8 вы можете использовать следующее: head -c 3 file | od -t x1
.
– mklement0
12 October 2012 в 23:43
В дополнение к преобразованию концов строки CRLF в LF, dos2unix
также удаляет спецификации:
dos2unix *.txt
dos2unix
также преобразует файлы UTF-16 с спецификацией (но не файлы UTF-16 без спецификация) в UTF-8 без спецификации:
$ printf '\ufeffä\n'|iconv -f utf-8 -t utf-16be>bom-utf16be
$ printf '\ufeffä\n'|iconv -f utf-8 -t utf-16le>bom-utf16le
$ printf '\ufeffä\n'>bom-utf8
$ printf 'ä\n'|iconv -f utf-8 -t utf-16be>utf16be
$ printf 'ä\n'|iconv -f utf-8 -t utf-16le>utf16le
$ printf 'ä\n'>utf8
$ for f in *;do printf '%11s %s\n' $f $(xxd -p $f);done
bom-utf16be feff00e4000a
bom-utf16le fffee4000a00
bom-utf8 efbbbfc3a40a
utf16be 00e4000a
utf16le e4000a00
utf8 c3a40a
$ dos2unix -q *
$ for f in *;do printf '%11s %s\n' $f $(xxd -p $f);done
bom-utf16be c3a40a
bom-utf16le c3a40a
bom-utf8 c3a40a
utf16be 00e4000a
utf16le e4000a00
utf8 c3a40a
awk '{if(NR==1)sub(/^\xef\xbb\xbf/,"");print}' INFILE > OUTFILE
и убедитесь, что INFILE и OUTFILE отличаются! – Steve Clay 12 February 2010 в 21:30perl -i.orig -pe 's/^\x{FFFE}//' badfile
, вы можете положиться на свои переменные PERL_UNICODE и / или PERLIO для кодирования. PERL_UNICODE = SD будет работать для UTF-8; для других вам нужен PERLIO. – tchrist 15 August 2011 в 00:38