Почему обработчик событий .click здесь не обновляется? - PullRequest
1 голос
/ 02 июня 2011

Я передаю строку таблицы в функцию, которая должна обновить атрибут onclick на привязке.

Что бы я ни пытался, я не могу установить для него новое значение. Я вижу, что это jQuery выбирает якорь. Но когда я предупреждаю до и после, атрибут onclick все равно указывает на то же значение, а не на параметр 'url', который предоставляется функции:

function modifyTrEditUrl(tr, url) {

           console.log(tr.find('td:eq(6) a')[0]);

           tr.find('td:eq(6) a')
                .attr('onclick', url); // I have tried 
                                       //.click(function(e){..}) way too!

           console.log(tr.find('td:eq(6) a')[0]); //still the same value! :(
        }

Любые советы?

Ответы [ 4 ]

1 голос
/ 02 июня 2011

Я не профессионал jQuery (или даже javascript), но я думаю, что из вашего кода вы пытаетесь установить значение атрибута onclick для URL.

.attr('onclick', url);

Я знаю, что в теге атрибуту onclick должна быть назначена функция javascript. Я думаю, что код пытается создать тег, как

<a onclick=url>

и я должен URL это строковый объект. Может быть, поэтому есть ошибки.

1 голос
/ 02 июня 2011

Я не уверен, но, похоже, вы путаете атрибут onClick с атрибутом HREF. При нажатии на ссылку используется URL-адрес в атрибуте HREF.

Атрибут onClick действительно используется для запуска Javascript. Тем не менее, если вы используете jQuery, вам действительно следует придерживаться функций bind или live (для которых click является оберткой).

0 голосов
/ 02 июня 2011

Как насчет использования

 tr.find('td:eq(6) a').attr('href', url);
0 голосов
/ 02 июня 2011

использовать .bind или .live, .live to late bind

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...