我有一个在悬停时有一些css3动画的网页,当用户触摸这些元素时,我想让它在iPad(和任何支持触摸的设备)上工作.
这是我的代码:
HTML:
<div id="headBlock">
<a id="arm"></a>
<div id="head">
<div id="blink"></div>
<div id="lid"></div>
<div id="man"></div>
<a id="man-arm"></a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
//arm
$('#arm').hover(function(){
$(this).removeAttr('style').css('bottom','244px');
$(this).addClass('hover_effect');
}, function(){
$(this).removeClass('hover_effect');
});
//man arm
$('#man').hover(function(){
$('#man-arm').removeAttr('style');
$('#man-arm').addClass('hover_effect');
}, function(){
$('#man-arm').removeClass('hover_effect');
});
Run Code Online (Sandbox Code Playgroud)
您可以看到,当鼠标输入元素时,我删除了样式,然后应用样式并添加css类'hover_effect',当鼠标离开时,我删除'hover_effect'类.
如何在触摸设备上实现相同的功能?click事件没有回调,因此在单击发生后我无法删除'hover_effect'类.我尝试了mousedown和mouseup但它没有用.我搜索了stackoverflow,我发现了这个如何使用触摸启用浏览器来模拟悬停?但它没有任何效果.
任何想法的人?
谢谢
毛罗
我已经建立了一个左右滚动的简单旋转木马.现在我想每5秒自动滚动一次.这是我的代码:
function carousel(){
$j('#carousel_ul li:first').before($j('#carousel_ul li:last'));
$j('#right_scroll img').click(function(){
var item_width = $j('#carousel_ul li').outerWidth() + 10;
var left_indent = parseInt($j('#carousel_ul').css('left')) - item_width;
$j('#carousel_ul:not(:animated)').animate({'left' : left_indent},800, 'easeOutExpo',function(){
$j('#carousel_ul li:last').after($j('#carousel_ul li:first'));
$j('#carousel_ul').css({'left' : '-750px'});
});
});
$j('#left_scroll img').click(function(){
var item_width = $j('#carousel_ul li').outerWidth() + 10;
var left_indent = parseInt($j('#carousel_ul').css('left')) + item_width;
$j('#carousel_ul:not(:animated)').animate({'left' : left_indent},800, 'easeOutExpo',function(){
$j('#carousel_ul li:first').before($j('#carousel_ul li:last'));
$j('#carousel_ul').css({'left' : '-750px'});
});
});
}
Run Code Online (Sandbox Code Playgroud)
我如何实现这一目标?提前致谢 :)
毛罗
我试图改变不同的背景,通过一个图像阵列循环div,并每5秒计时一次.
这是我的代码:
function changeBG(){
//array of backgrounds
var array = ["test.jpg", "test2.jpg", "test3.jpg",];
for ( var i=0, len=array.length; i<len; ++i){
$('.round-mask').css('background-image', 'url("images/work/'+array[i]+'")');
}
}
window.setInterval(changeBG(), 5000);
Run Code Online (Sandbox Code Playgroud)
这不起作用,我可以看到它正在循环,但我总是得到第三张图像.
任何的想法?
提前致谢.
毛罗
我的问题很简单:我想知道'p'标记内有多少个字符,如果数量超过100,则会在悬停时触发一个事件。我试图像这样检索字符数:
var charLength = $('.myPar').val().length;
<p class="myPar">this is the content of the paragraph</p>
Run Code Online (Sandbox Code Playgroud)
它始终返回零作为值,并且似乎仅适用于文本区域或输入标签。任何的想法?
提前致谢!
毛罗
我正在尝试创建一个php文件,我可以直接编辑而无需手动设置权限.
我正在尝试这个......
<?php
$var = '<?php $mycontent = new Content(); echo $mycontent->block($p_name);?>';
$myFile = "testFile.php";
$fh = fopen($myFile, 'w+') or die("can't open file");
$stringData = $var;
fwrite($fh, $stringData);
fclose($fh);
?>
Run Code Online (Sandbox Code Playgroud)
...它创建了文件,但是当我尝试在IDE中编辑文件时,它当然不会让我.我必须手动设置创建的文件的权限.有什么方法可以创建文件并已设置权限吗?
提前致谢
毛罗
我想检查模板.ss文件 - 页面名称或标题,以显示不同的图像.我想做那样的事情:
<% if $SiteConfig.Title == 'video' %>
<img src="themes/blackcandy/images/image.jpg" />
<% else if $SiteConfig.Title == 'bio' %>
<img src="themes/blackcandy/images/image1.jpg" />
...
...
<% end_if %>
Run Code Online (Sandbox Code Playgroud)
上面的代码当然不起作用.我该怎么做?有没有更有效的方法呢?
非常感谢.
毛罗
我有一个getJson调用web服务,工作正常,现在我试图每10秒发出一次请求.使用带有回调函数的setInterval来触发警报弹出.我不能让它发挥作用.这是代码:
function ajxCall(){
$.getJSON('http://api.tubeupdates.com/?method=get.status&lines=all&return=name,status,messages,status_starts&jsonp=?',
function (result){
$.each(result.response.lines, function(i, item){
$('#status').append("<p>"+item.name + " - " + item.status + " <br><b>" +item.messages + "</b> " + item.status_starts + "</p>");
});
});
}
setInterval(ajxCall(), (10 * 1000), function(){
alert('called!')
});
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
提前致谢,
毛罗
我有2个文本框,一个名为'title',一个名为'url'.使用jquery .blur()我将'title'的值复制到'url'值并且我用下划线替换空格,但由于某种原因它只替换第一个空格而不是全部空格:这是代码:
$("#title").blur(function(){
var myval = $(this).val().replace(" ", "_");
$("#url").val(myval);
});
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
提前致谢
我正在尝试使用正则表达式从时间戳中提取年份,但我不是很擅长,所以我的代码没有返回预期的内容.
这是字符串:' Sun Jan 01 2012 00:00:00 GMT + 0000(GMT) '
我需要在这里提取'2012'是我的代码:
var scrollDate = tl.getBand(0).getCenterVisibleDate(); // my timestamp
// regex function
function extractNumbers(str) {
var m = /(^|\s)(\d{4})(\s|$)/.exec(str);
return m;
}
// click event
$('.n-left').click(function(){
alert(extractNumbers(scrollDate));
});
Run Code Online (Sandbox Code Playgroud)
警报框返回:2012年,2012年,
我究竟做错了什么?提前致谢
该.die()方法已从jQuery 1.9中删除.知道如何实现同样的事情吗?我试图在某些链接上杀死页面加载时的点击处理程序.
谢谢
jquery ×7
ajax ×1
background ×1
character ×1
hover ×1
javascript ×1
loops ×1
mobile ×1
php ×1
regex ×1
replace ×1
setinterval ×1
silverstripe ×1
templates ×1
timed-events ×1
timestamp ×1