Переменная среды FIGNORE хороша, когда Вы хотите, чтобы заполнение клавишей Tab проигнорировало файлы или папки с определенными суффиксами, например:
export FIGNORE="CVS:.svn:~"
Использование переменная среды IFS, когда Вы хотите определить разделитель объекта кроме пространства, например:
export IFS="
"
Это сделает Вас способными циклично выполниться через файлы и папки с пробелами в них, не выполняя волшебства, как это:
$ touch "with spaces" withoutspaces
$ for i in `ls *`; do echo $i; done
with
spaces
withoutspaces
$ IFS="
"
$ for i in `ls *`; do echo $i; done
with spaces
withoutspaces
Лучшее решение - вообще не использовать какой-либо фиктивный заполнитель. Используйте значимый URL-адрес, который, если бы ссылка действительно была пройдена, показала бы вам информацию, которую вы получили бы из запроса AJAX.
Я регулярно делаю это в своих веб-приложениях, используя Javascript для улучшения рабочего сайта. Например, HTML:
<a href="/users/index" rel="popup">View users</a>
Javascript (jQuery):
$('a[rel*="popup"]').click(function() {
loadPopup({ // whatever your favourite lightbox is, etc..
url: this.href
});
return false;
});
У этого есть множество преимуществ. Ваш сайт доступен для программ чтения с экрана, поисковых роботов и пользователей с отключенным javascript, и даже те, у кого включен javascript, получат значимый URL-адрес в строке состояния, чтобы они знали, куда они идут.
Я обычно использую это:
href="javascript:void(0);"
Установка атрибута привязки href
на javascript: void (0);
указывает браузеру, что эта привязка не является гиперссылкой на другой документ или привязкой,
Зачем вам нужно что-то определять в href?
Вот как работает SO =>
<a id="close-question-1871874" title="closes/opens question for answering....">
close<span title="3 more vote(s) needed to close this question"> (2)</span>
</a>
Но - если ссылка действительно должна куда-то перемещаться - сохраните обычный href
и просто обычное поведение e.preventDefault () с jQuery.
Если ваш обработчик onclick
возвращает false
, браузер не будет переходить по ссылке. Попробуйте следующее:
<a href="#" onclick="alert('No # in the address bar!'); return false;">Click Me</a>
РЕДАКТИРОВАТЬ:
Если вы абсолютно не желаете использовать октоторп (например, символ #
), вам не обязательно. Попробуйте это:
<a href="" onclick="alert('No change in the address bar!'); return false;">Click Me</a>
Использование символа «#» в качестве заполнителя в основном делает ссылку «активной». Браузер интерпретирует это как тег, указывающий на что-то еще. Если href пуст, браузер будет считать, что тег a - это просто еще один тег.
Чтобы решить эту проблему, можно назначить некоторый CSS другому тегу, который имитирует ту же функциональность, что и тег. При наведении курсора измените мышь, подчеркните, измените цвет и т. Д. Вы можете легко изменить статус окна и создать впечатление, что пользователь нажимает на ссылку, хотя на самом деле он не щелкает ссылку, а создает событие щелчка. .
На самом деле, это лучший вариант, потому что запуск только JS-функции через привязку событий, которую нельзя использовать без JavaScript, не следует рассматривать как ссылку.
никф опередил меня; Однако следует упомянуть несколько вещей. Никогда не используйте протокол «javascript» для ссылки (если только вы не хотите, чтобы она была букмарклетом). Это противоположно прогрессивному улучшению. По возможности атрибут href
должен быть реальным ресурсом URI, чтобы его можно было корректно ухудшить. Во всех остальных случаях рекомендуется использовать символ «#» и использовать соответствующий JavaScript, чтобы предотвратить прокрутку страницы вверх. Это можно сделать двумя способами. В обработчике кликов либо запретите действие по умолчанию, либо верните false.
$('a[rel*="popup"]').click(function(e) {
e.preventDefault();
loadPopup({url: this.href});
});
или
$('a[rel*="popup"]').click(function() {
loadPopup({url: this.href});
return false;
});
Возможно, я ничего не понимаю, но если ссылки нет, вам просто не следует использовать элемент в первую очередь. Используйте некоторые или прикрепите прослушиватели событий к элементам списка. Вы можете стилизовать эти элементы так, чтобы они имели cursor: pointer;
, используя CSS.
Помните, что в браузерах есть некоторые специальные действия, связанные со ссылками, например «открыть в новой вкладке», «сохранить целевой элемент» и т. Д. Когда вы используете фиктивный атрибут href = ''
, эти действия работают в неработающем Так что лучше вообще не использовать ссылки.
С другой стороны, если вы можете отображать содержимое этих ajaxified частей как обычные страницы (и это имеет смысл), следуйте совету nickf .