合并JQuery&;Javascript
我正在使用一些JavaScript在单击输入时复制一个值。这很有效。 通常我会发出JavaScript警报,但现在我想使用查询div 如果我在单独的脚本中运行jquery或javascript,那么它们工作正常,一旦我加入它们,它们就会失败 我认为这是因为我对副本使用onMouseOver,而对淡出警报使用input click事件 你知道我如何合并这些吗合并JQuery&;Javascript,javascript,jquery,Javascript,Jquery,我正在使用一些JavaScript在单击输入时复制一个值。这很有效。 通常我会发出JavaScript警报,但现在我想使用查询div 如果我在单独的脚本中运行jquery或javascript,那么它们工作正常,一旦我加入它们,它们就会失败 我认为这是因为我对副本使用onMouseOver,而对淡出警报使用input click事件 你知道我如何合并这些吗 <script language="JavaScript"> function toClip(me,vals)
<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
表达式包含不完整的HTML。您必须确保div标记已关闭,可以使用$messageCont=…
或..
- 脚本在
中淡出,但在$message
中淡出。这在第一次使用时是可以的,但随后您将精确地看到nada;没有要淡入的表达式$messageCont
$messageCont
- 动画队列中的延迟可以通过
实现,这比使用.Delay()
更干净setTimeout()
- 当在显示第二个
表达式的内容之前定位它时,很难看到它应该实现什么。如果最初需要定位$messageCont.css(…)
,那么最好使用样式表指令,或者在$(document).ready(function(){…})结构中的jQuery中定位$messageCont
$(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可以让它正常工作。但只有一个按钮。我已经更新了我原来的帖子。。欢迎任何建议!我接受了这一点,因为它确实有效,但这并不是我想要的。那是我的错,因为我没有问清楚。谢谢