zclip не работает в модале начальной загрузки

Я использую чистый пример кода, предоставленный страницей zclip:

$('a#copy-dynamic').zclip({
    path:'js/ZeroClipboard.swf',
    copy:function(){return $('input#dynamic').val();}
});

и это HTML:

<a href="#" id="copy-dynamic" class="">Click here to copy the value of this input:</a>
<input type="text" id="dynamic" value="Insert any text here." onfocus="if(this.value=='Insert any text here.'){this.value=''}" onblur="if(this.value==''){this.value='Insert any text here.'}">

Он отлично работает, если HTML находится внутри главной страницы начальной загрузки, но перестает работать, если я переместил HTML-код в модальное окно начальной загрузки (то есть внутри элемента div модального окна).

Как я могу заставить это работать?

2 ответа

У меня была та же проблема с моделями zclip и bootstrap. Исправление, которое я применил, было двойным:

  • Прикрепите zclip к элементу внутри модальной функции 'show'.
  • Добавьте задержку 250 мс, прежде чем прикреплять zclip к элементу.

Это правильно помещает zclip в модальное пространство. Это также работает, если у вас есть несколько вкладок в модальном.

HTML

<div id="myModal" class="modal hide fade">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h3>Modal header</h3>
    </div>
    <div class="modal-body">
        <a class="btn" href="#" id="modal_body_button">Copy Undo Config To Clipboard</a>
        <p>One fine body…</p>
    </div>
    <div class="modal-footer">
        <a href="#" class="btn">Close</a>
        <a href="#" class="btn btn-primary">Save changes</a>
    </div>
</div>

JavaScript

$('#myModal').on('show', function () {
    $("#modal_body_button").delay(250).queue(function(next){
        $(this).zclip({
            path: "/static/javascript/ZeroClipboard.swf",
            copy: "copied text OK!"
        });
        next();
    });
});

В приведенном выше примере также можно использовать событие on('показанный') вместо on('show'), которое вызывается, когда модальный полностью показан. Это помогает предотвратить использование грязных хаков, таких как задержка (250)

Другие вопросы по тегам