合并JQuery&;Javascript

合并JQuery&;Javascript,javascript,jquery,Javascript,Jquery,我正在使用一些JavaScript在单击输入时复制一个值。这很有效。 通常我会发出JavaScript警报,但现在我想使用查询div 如果我在单独的脚本中运行jquery或javascript,那么它们工作正常,一旦我加入它们,它们就会失败 我认为这是因为我对副本使用onMouseOver,而对淡出警报使用input click事件 你知道我如何合并这些吗 <script language="JavaScript"> function toClip(me,vals)

我正在使用一些JavaScript在单击输入时复制一个值。这很有效。 通常我会发出JavaScript警报,但现在我想使用查询div

如果我在单独的脚本中运行jquery或javascript,那么它们工作正常,一旦我加入它们,它们就会失败

我认为这是因为我对副本使用onMouseOver,而对淡出警报使用input click事件

你知道我如何合并这些吗

<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>

函数toClip(me、VAL){
var clip=新的ZeroClipboard.Client();
clip.setHandCursor(true);
clip.setText(VAL);
夹子。胶水(我);
}
$(文档).ready(函数(){
$('input')。单击(函数(){
$messageCont=$('');
$message=$('DONE').hide();
$messageCont.append($message);
$('body').prepend($messageCont);
$messageCont.css({
“left”:$(this).offset().left,
“top”:$(this).offset().top
});
$message.fadeIn(200,函数(){
setTimeout(函数(){
$messageCont.fadeOut();
//清理容器的代码
}, 1500)
})
})
});
$messageCont.css({
“left”:$(this).offset().left,
“top”:$(this).offset().top
});
这称为通过:

<div class='copy' onmouseOver="toClip(this,'$val')"><input type="button" value="Copy"/></div>

谢谢:)

4月15日更新:

使用jquery而不是Javascript实现了这一点

<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>

var clip=newZeroClipboard(document.getElementById(“复制按钮”){
moviePath:“js/ZeroClipboard.swf”
} );
clip.on('complete',函数(客户端,参数){
var$message=$('DONE').hide();
var$messageCont=$('').append($message.prependTo('body');
$messageCont.css({
“left”:$(this).offset().left,
“top”:$(this).offset().top
}).find(“div.message”).fadeIn(200).延迟(1500).淡出(函数(){
});
} );
我唯一的问题是它只能和on按钮一起工作。我有很多我想用的东西。 有人知道如何解决这个问题吗

谢谢:)

几点:

  • 新的
    $messageCont/$message
    可能不需要在每次单击输入时创建?代码的其余部分建议重用

  • $messageCont=…
    表达式包含不完整的HTML。您必须确保div标记已关闭,可以使用
    ..

  • 脚本在
    $message
    中淡出,但在
    $messageCont
    中淡出。这在第一次使用时是可以的,但随后您将精确地看到nada;没有要淡入的表达式
    $messageCont

  • 动画队列中的延迟可以通过
    .Delay()
    实现,这比使用
    setTimeout()
    更干净

  • 当在显示第二个
    $messageCont.css(…)
    表达式的内容之前定位它时,很难看到它应该实现什么。如果最初需要定位
    $messageCont
    ,那么最好使用样式表指令,或者在$(document).ready(function(){…})结构中的jQuery中定位

从字里行间看,我想你可能更想要这样的东西:

$(document).ready(function() {
    var $message = $('<div class="message">DONE</div>').hide();
    var $messageCont = $('<div class="message_cont" />').append($message).prependTo('body');
    $('input').on('click', function() {
        $messageCont.css({
            "left" : $(this).offset().left,
            "top" : $(this).offset().top
        }).find("div.message").fadeIn(200).delay(1500).fadeOut(function() {
            //code to clean up container
        });
    });
});
$(文档).ready(函数(){
var$message=$('DONE').hide();
var$messageCont=$('').append($message.prependTo('body');
$('input')。在('click',function()上{
$messageCont.css({
“left”:$(this).offset().left,
“top”:$(this).offset().top
}).find(“div.message”).fadeIn(200).延迟(1500).淡出(函数(){
//清理容器的代码
});
});
});

join和merge是什么意思?jQuery是JavaScript。它们是如何失败的?您是否收到错误消息?为什么在第一个脚本标记中使用language='javascript',在第二个脚本标记中使用type='text/javascript'?language属性已弃用。很抱歉,它们来自两个单独的脚本,我尚未整理它们。我要做的是单击输入按钮,将值复制到剪贴板,然后显示div浮动框。谢谢你的回复。那对我来说是行不通的!如果我没有通过onMouseOver调用其他Javascript,那么当我单击一个输入按钮时,不会发生任何事情。谢谢,现在可以了。但是我需要这样做,以便我可以将底层值复制到剪贴板?有没有办法让这两段代码一起工作?谢谢:)剪贴板是否已成功安装在页面上?如果没有,则
。。。新建ZeroClipboard.Client()
将向浏览器的错误控制台.Hi抛出错误。使用Jquery可以让它正常工作。但只有一个按钮。我已经更新了我原来的帖子。。欢迎任何建议!我接受了这一点,因为它确实有效,但这并不是我想要的。那是我的错,因为我没有问清楚。谢谢