2015-02-17 3 views
0

Я пытаюсь создать сайт с динамически загружаемым текстом, используя Knockoutjs, который я хочу, чтобы пользователь мог щелкнуть и скопировать его в свой буфер обмена. Для функции копирования в буфер обмена я использую Zclip, и я работаю, когда текст статически загружается.Пытается использовать ZClip в Knockout

В моей ViewModel, у меня есть функция copyFunction которая выглядит следующим образом:

self.copyFunction = function(html) { 
    console.log(html); 
    $('#copytext').zclip({ 
     path: "http://www.steamdev.com/zclip/js/ZeroClipboard.swf", 
     copy: function() { 
      return $('#copytext').text(); 
     } 
    }); 
} 

Это называется любое один из пунктов нажал на веб-странице.

И в моем HTML у меня есть такого рода контента, динамически генерируется для каждого элемента у меня есть:

<div class="row" data-bind="foreach: itemList"> 
     <div class="col-xs-3 text-center"> 
      <a data-bind="click: $parent.copyFunction, text: text" href="#" id="copytext"></a> 
     </div> 
</div> 

Я знаю, что мой copyFunction не является правильным, но я не знаю, что мне нужно сделать чтобы заставить его работать на меня. В идеале я хотел бы применить ZClip к тегу <a>, который его вызывает, но я не знаю, как это сделать.

Единственный способ, которым я использовал ZClip раньше, является наиболее известным примером: настройка идентификатора в вашем HTML и использование обработчика события jQuery. Однако я не могу заставить это работать либо потому, что я новичок в JS, и я уверен, что id не полностью загружен, когда моя функция jQuery, и, следовательно, она не связана с DOM правильно ,

Если бы вы могли помочь мне понять, как я могу получить эту работу, я был бы очень признателен.

ответ

1

Решил проблему, передав в качестве параметра функцию event.

Вот как функция выглядит сейчас:

self.copyFunction = function(html, event) { 
    var target = event.target; 
    $(target).zclip({ 
     path: "http://www.steamdev.com/zclip/js/ZeroClipboard.swf", 
     copy: function() { 
      return $(target).text();  
     } 
    }); 
} 

Дополнительный бзик у меня есть Zclip работает только тогда, когда я загрузить сайт на мой сервер, но не из моего локального хоста. Кто-нибудь знает, почему это может произойти?