这是我的代码:
$("#header").touchwipe({
// if($('#cont-wide').css('left') == '-100%' ){
wipeLeft: function() {
$('#cont-wide').animate({
left: '-201%'
}, 500 );
$('#nav-filters').fadeOut(200);
$('#nav-map-l').delay(300).fadeIn(200);
$('#one .col-inner').delay(500).hide(0);
$('#three .col-inner').css('display','block');
setTimeout(function() {
window.scrollTo(0, 1) },
100);
},
wipeRight: function() {
$('#cont-wide').animate({
left: '1%'
}, 500 );
$('#nav-filters').fadeOut(200);
$('#nav-map-r').delay(300).fadeIn(200);
$('#one .col-inner').css('display','block');
setTimeout(function() {
window.scrollTo(0, 1) },
100);
},
min_move_x: 50,
min_move_y: 50,
preventDefaultEvents: false
// }
});
目前它的工作正常。但是,当我删除注释以添加条件语句时,代码和我所有其他JavaScript都停止工作。谢谢
答案 0 :(得分:7)
你不能把if
声明放在那里......
你可以这样做:
wipeLeft: function() {
if($('#cont-wide').css('left') == '-100%' ){
// the rest
}
},
wipeRight: function() {
if($('#cont-wide').css('left') == '-100%' ){
// the rest
}
}
注意 - css
函数我没有产生您期望的结果:http://jsfiddle.net/VccAn/在我的示例中使用10%
的{{1}}值返回left
在Chrome上!有关此问题的讨论,请参阅此问题/答案:jQuery .css("left") returns "auto" instead of actual value in Chrome
答案 1 :(得分:5)
你不能只是在陈述中插入if
陈述。
最好的解决方案是在调用touchwipe()
之前创建选项对象:
var options = {};
if($('#cont-wide').css('left') == '-100%') {
options.wipeLeft = function() {
};
options.wipeRight = function() {
};
}
$("#header").touchwipe(options);
请注意,if
条件仅评估一次。如果您希望在每个事件上对其进行评估,那么@ManseUK's answer就是您的选择。