Обработчик JavaScript OnClick не вызывается - PullRequest
3 голосов
/ 11 мая 2010

Я вызываю функцию javascript во встроенном onclick следующим образом:

<a href="#" onclick="removeAttribute('foo', 'bar');">Some Link</a>

Когда я нажимаю на ссылку, ничего не происходит. У меня есть другие ссылки (на другие функции), связанные с кликами, которые отлично работают в других местах на той же странице. Все ссылки на эту функцию «removeAttribute» не выполняются.

В Firebug нет ошибок, и вызывается обработчик события onclick, но переход в функцию removeAttribute по некоторым причинам заканчивается где-то в jQuery.js Ни при каких обстоятельствах не вызывается метод removeAttribute.

Если я это сделаю:

javascript:removeAttribute('foo', 'bar');

в адресной строке Firefox. Функция вызывается успешно.

Кто-нибудь видел это?

Ответы [ 3 ]

4 голосов
/ 11 мая 2010

Вы вызываете свой собственный метод? Если это так, вызывать путаницу в методе removeAttribute непонятно, поскольку он уже определен как метод, присоединенный к узлам DOM. Когда ваш обработчик событий вызывается, его область действия определяется как узел, по которому щелкнули. Ваш код, вероятно, вызывает встроенный метод объекта, по которому щелкнули. Попробуйте использовать другое имя или поместить свой метод внутри объекта Javascript, чтобы вы могли вызывать его явно.

1 голос
/ 11 мая 2010

Попробуйте это:

<a href="javascript:removeAttribute('foo', 'bar');">Some Link</a>

Возможно, он не работает из-за '#' для значения href. Поэтому вместо этого поместите javascript в качестве href, что фактически означает то же самое, что поместить его в адресную строку.

0 голосов
/ 11 мая 2010

Если вы используете jQuery, почему бы не использовать его? Предполагая, что ваша версия removeAttribute() делает то же самое, что и нативный метод javascript removeAttribute(), вы можете сделать что-то вроде:

<script type='text/javascript'>
    $(document).ready(function(){
        $('a#somelink').click(function(){
            $('#foo').removeAttr('bar');
        });
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...