ZeroClipboard / zClip - как связать с живыми событиями? - PullRequest
4 голосов
/ 09 декабря 2011

Я пытаюсь связать zclip с live:

$('.code').live('click', function () {
    $(this).zclip({
        path: '<%= asset_path "ZeroClipboard.swf" %>',
        copy: $(this).text()
    });

    ...
});

Кажется, это не работает. Любые подсказки?

Мне нужно жить, потому что некоторые элементы DOM добавляются с помощью ajax.

Ответы [ 2 ]

1 голос
/ 03 сентября 2013

Вы можете поместить zclip-binding в функцию обратного вызова в вашем методе ajax, например так:

$.post('ajax',
   {data:"data"}, 
       function(data){
      //add dom elements
      ....
          //bind zclip
          $('.code').each(function(){
    $(this).zclip({
      path:".ZeroClipboard.swf",
      copy:$(this).txt()
        });
      });
   }, 'json');

each () должен избегать использования $ ('. Code') двух или более элементов.

0 голосов
/ 03 августа 2012

Проверьте версию jQuery, которую вы используете.Вы должны использовать .delegate () или .on () (если jQuery> = 1.7) вместо этого в любом случае.(jQuery устарел .live метод) Они должны работать с вашими добавленными элементами через ajax.

$('.code').on('click', function () {
    $(this).zclip({
        path: '<%= asset_path "ZeroClipboard.swf" %>',
        copy: $(this).text()
    });
});
...