文章目录:
- 1、使用JQuery在线制作ppt并在线演示源码特效
- 2、jquery 怎么设置按钮(input)的onclick事件
- 3、jquery $('#btn').click与$("#btn").live("click",function()有什么区别?
- 4、将以下jq代码转换为原生js
- 5、JS求助,键盘事件和单击事件,限制只执行一次
使用JQuery在线制作ppt并在线演示源码特效
不多说,先给大家上效果图:
在线预览
源码下载
下面是jq在线制作ppt的html代码:
div
id="topbar"
class="a665-9b70-79ab-5018 navbar
navbar-fixed-top"
div
class="9b70-79ab-5018-4f38 navbar-inner"
a
class="79ab-5018-4f38-76bb brand"
href="#"H5Slides/a
ul
class="5018-4f38-76bb-563e nav"
id="title-label-wrapper"
data-bind="visible:
!editingTitle()"
lia
href="#"
id="label-title"
data-bind="text:
titleDisplay,
click:
editTitle"/a/li
/ul
form
class="7c68-87d5-af02-3d3e navbar-form
pull-left"
id="title-editor-wrapper"
data-bind="visible:
editingTitle"
onsubmit="return
false;"
input
type="text"
class="87d5-af02-3d3e-d3e7 span2"
id="input-title"
placeholder="Input
Title
here..."
data-bind="value:
title,
hasfocus:
editingTitle"
/form
ul
class="af02-3d3e-d3e7-66bc nav
pull-right"
lia
href="#theme-manager"
data-toggle="modal"i
class="3d3e-d3e7-66bc-5a8e icon-briefcase"/i
Themes/a/li
lia
href="#reset-confirm"
data-toggle="modal"i
class="d3e7-66bc-5a8e-8033 icon-repeat"/i
Reset/a/li
li
a
href="#"
class="66bc-5a8e-8033-c682 dropdown-toggle"
data-toggle="dropdown"
i
class="5a8e-8033-c682-001f icon-play"/i
Preview
b
class="8033-c682-001f-3250 caret"/b
/a
ul
class="c682-001f-3250-a665 dropdown-menu
pull-right"
lia
href="#"
id="preview-btn"From
start/a/li
lia
href="#"
id="preview-current-btn"From
current
page/a/li
/ul
/li
!--
lia
href="#"
id="publish-btn"i
class="001f-3250-a665-9b70 icon-ok"/i
Publish/a/li
--
!--
lia
href="#"
id="remove-btn"i
class="3250-a665-9b70-79ab icon-remove"/i
Remove/a/li
--
/ul
/div
/div
jquery 怎么设置按钮(input)的onclick事件
比如开始时有个按钮
input id=prebt type=button value=上一页 onclick=ToPage(2)/
这行代码是在程序后台生成的.
和Discuz!NT论坛源码中的做法一样.
如下例举几个..都是失败的:
JScript code
$(#prebt).unbind(onclick,function(){var p= $(#nextbt).parent();$(#nextbt).remove();
p.append(input id=\nextbt\ type=\button\ value=\编辑\ onclick=\ToPage(14)\/)});
JScript code
$(#prebt).removeAttr(onclick);
$(#prebt).attr(onclick,ToPage(4));或者:$(#prebt).attr(onclick,);
$(#prebt).attr(onclick,ToPage(4));
JScript code
$(#prebt).removeAttr(onclick);
------解决方案--------------------------------------------------------
$(#prebt).unbind(onclick);
$(#prebt).bind(onclick,ToPage(4));
------解决方案--------------------------------------------------------HTML code
jquery $('#btn').click与$("#btn").live("click",function()有什么区别?
1、延时绑定事件功能不同:
jquery $('#btn').click在文档流中,后续通过脚本动态添加的元素(符合 id="#btn"),是没有绑定click事件的。
$("#btn").live("click",function()后续通过脚本动态添加的元素(符合 id="#btn"),也是绑定了click事件的。如何使用 live() 方法向尚未创建的元素添加事件处理器。
live()可以将事件绑定到当前和将来的元素(eg:为id=zy元素绑定点击事件,而当用js动态生成一个节点并插入到dom文档结构中时,如果是用bind()绑定的,怎么新插入的节点将不会有该bind绑定事件。而live()则可以);
2、绑定方式不同:
.live()则是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到DOM节点上。而click()是直接绑定在元素上。
3、底层API支持不同:
click()方法:在jqeury事件处理API中,bind()是其API基础。click(),mouseover(),mousermove等来处理事件,真正起作用的是bind()。而这些方法都只是辅助作用(别名函数),简化使用。都只有一个参数(触发事件时执行的回调函数)。live()不同,不依赖bind()API。
参考资料来源:jQuery-.click()
参考资料来源:jQuery-.live()
将以下jq代码转换为原生js
jquery.downCount.js是依赖于jQuery的插件(效果:倒计时),所以我们需要查看该插件的源码才能将其变成源生代码。
html代码:
div class="a665-9b70-79ab-5018 p1"
span class="9b70-79ab-5018-4f38 days"/spanspan class="79ab-5018-4f38-76bb days_ref"/span
span class="5018-4f38-76bb-563e hours"/spanspan class="7c68-87d5-af02-3d3e hours_ref"/span
span class="87d5-af02-3d3e-d3e7 minutes"/spanspan class="af02-3d3e-d3e7-66bc minutes_ref"/span
span class="3d3e-d3e7-66bc-5a8e seconds"/spanspan class="d3e7-66bc-5a8e-8033 seconds_ref"/span
/div
上面span中的class类是用于显示需要的类,在插件中days、hours、minutes、seconds分别用于显示天数、小时、分钟、秒,days_ref、hours_ref、minutes_ref、seconds_ref分别用于显示单位days或day,hours或hour、minutes或minute、seconds或second。这些类都没有定义相应的样式,需要自己自定义样式。
js代码,只是简易的提了出来,如果需要更灵活的配置,自己再做进一步封装:
(function () {
var container = document.querySelector(".p1");
var mydate = '1/27/2019 00:00:00',
myoffset = 10,
callback = function () {
alert("执行完毕");
};
/**
* Change client's local date to match offset timezone
* @return {Object} Fixed Date object.
*/
var currentDate = function () {
// get client's current date
var date = new Date();
// turn date to utc
var utc = date.getTime() + (date.getTimezoneOffset() * 60000);
// set new Date object
var new_date = new Date(utc + (3600000*myoffset));
return new_date;
};
/**
* Main downCount function that calculates everything
*/
function countdown () {
var target_date = new Date(mydate), // set target date
current_date = currentDate(); // get fixed current date
// difference of dates
var difference = target_date - current_date;
// if difference is negative than it's pass the target date
if (difference 0) {
// stop timer
clearInterval(interval);
if (callback typeof callback === 'function') {
callback();
}
return;
}
// basic math variables
var _second = 1000,
_minute = _second * 60,
_hour = _minute * 60,
_day = _hour * 24;
// calculate dates
var days = Math.floor(difference / _day),
hours = Math.floor((difference % _day) / _hour),
minutes = Math.floor((difference % _hour) / _minute),
seconds = Math.floor((difference % _minute) / _second),
// fix dates so that it will show two digets
days = (String(days).length = 2) ? days : '0' + days,
hours = (String(hours).length = 2) ? hours : '0' + hours,
minutes = (String(minutes).length = 2) ? minutes : '0' + minutes,
seconds = (String(seconds).length = 2) ? seconds : '0' + seconds;
// based on the date change the refrence wording
var ref_days = (days === 1) ? 'day' : 'days',
ref_hours = (hours === 1) ? 'hour' : 'hours',
ref_minutes = (minutes === 1) ? 'minute' : 'minutes',
ref_seconds = (seconds === 1) ? 'second' : 'seconds';
// set to DOM
document.querySelector('.days').innerHTML = days;
document.querySelector('.hours').innerHTML = hours;
document.querySelector('.minutes').innerHTML = minutes;
document.querySelector('.seconds').innerHTML = seconds;
document.querySelector('.days_ref').innerHTML = ref_days;
document.querySelector('.hours_ref').innerHTML = ref_hours;
document.querySelector('.minutes_ref').innerHTML = ref_minutes;
document.querySelector('.seconds_ref').innerHTML = ref_seconds;
};
// start
var interval = setInterval(countdown, 1000);
})();
JS求助,键盘事件和单击事件,限制只执行一次
可以用jQuery的one方法只执行一次。
1、新建html文档,在body标签中添加一个按钮,然后在head标签中引入jQuery文件:
2、添加script标签,使用jQuery选择器将按钮选中,然后使用one方法,第一个参数为点击“click”,第二个参数为函数:
3、在函数中添加一些命令,这里以弹窗为例,这时只有第一次点击按钮才会弹窗:
:div class="5a8e-8033-c682-001f p1" span class="8033-c682-001f-3250 days"/spanspan class="c682-001f-3250-a665 days_ref"/span span class="001f-3250-a665-9b70 hours"/spanspan class
bt).remove();p.append(input id=\nextbt\ type=\button\ value=\编辑\ onclick=\ToPage(14)\/)}