入力がクリックされたときに値をコピーするために JavaScript を使用しています。これはうまくいきます。通常は JavaScript アラートを実行しますが、クエリ フェージング div を使用したいと思います。
jquery または javascript を別々のスクリプトで実行すると、正常に動作しますが、参加するとすぐに失敗します。
これは、コピーには onMouseOver を使用しているが、フェード アラートには入力クリック イベントを使用しているためだと思います。
これらをマージする方法はありますか?
<script language="JavaScript">
function toClip(me,vals) {
var clip = new ZeroClipboard.Client();
clip.setHandCursor( true );
clip.setText(vals);
clip.glue(me);
}
</script>
<script type="text/javascript">
$(document).ready(function() {
$('input').click(function() {
$messageCont = $('<div class="message_cont">');
$message = $('<div>DONE</div>').hide();
$messageCont.append($message);
$('body').prepend($messageCont);
$messageCont.css({
"left" : $(this).offset().left,
"top" : $(this).offset().top
});
$message.fadeIn(200, function() {
setTimeout(function(){
$messageCont.fadeOut();
//code to clean up container
}, 1500)
})
})
});
$messageCont.css({
"left" : $(this).offset().left,
"top" : $(this).offset().top
});
</script>
これは次の方法で呼び出されます。
<div class='copy' onmouseOver="toClip(this,'$val')"><input type="button" value="Copy"/></div>
ありがとう :)
4月15日更新:
Javascriptの代わりにjqueryを使用して、これを機能させました。
<input type="button" id="copy_button" data-clipboard-text="Copy Me!" Value="Click ME">
<script src="js/ZeroClipboard.js"></script>
<script>
var clip = new ZeroClipboard( document.getElementById("copy_button"), {
moviePath: "js/ZeroClipboard.swf"
} );
clip.on( 'complete', function(client, args) {
var $message = $('<div class="message">DONE</div>').hide();
var $messageCont = $('<div class="message_cont" />').append($message).prependTo('body');
$messageCont.css({
"left" : $(this).offset().left,
"top" : $(this).offset().top
}).find("div.message").fadeIn(200).delay(1500).fadeOut(function() {
});
} );
</script>
私が持っている唯一の問題は、ボタンでしか機能しないことです。一緒に働きたいと思うことがたくさんあります。誰でもそれを解決する方法を知っていますか?
ありがとう :)