jQuery - запуск функции на элементе - PullRequest
1 голос
/ 04 октября 2010

Мне нужно добавить палитру цветов для некоторых элементов ввода. Я использую

$(".element").colorPicker(){ ... }

Это работает отлично. Проблема в том, что на странице есть форма AJAX, которая при отправке заменяет предыдущую форму новой (новые поля ввода и т. Д.). После этого colorPicker перестает работать.

Так как же я могу запустить эту функцию для вновь созданных входов?

Ответы [ 3 ]

1 голос
/ 04 октября 2010

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

0 голосов
/ 04 октября 2010

То, что говорит meder, хорошо, но также, если вы создаете новые элементы путем копирования существующих, рассмотрите возможность использования $.clone(true) для создания своих копий, и оно также перенесет существующие привязки событий.

0 голосов
/ 04 октября 2010

Я считаю, что это может сработать:

$(".element").live('click focus', function () {
    var $this = $(this);
    if (!$this.data('hasColorPicker')) {
        $this.colorPicker({ /* ... */ }).data('hasColorPicker', true);
        $this.click(); // trigger the color picker - assuming it binds itself to the click event
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...