2015-02-24 35 views
0

我试图操纵滑块中的文本。 但问题是它只适用于第一张可见的幻灯片。jQuery - 等待这个元素,然后执行1次

我需要一个方法来等待这个元素,然后执行这个1次。

if( $(".slide-1").is(":visible") == true) 
{ 
    var test5 = jQuery("h1,p",".feature-box-text"); 
    test5.wrapInner('<span></span>'); 
} 
if( $(".slide-2").is(":visible") == true) 
{ 
    var test6 = jQuery("h1,p",".feature-box-text"); 
    test6.wrapInner('<span></span>');  
} 
if( $(".slide-3").is(":visible") == true) 
{ 
    var test7 = jQuery("h1,p",".feature-box-text"); 
    test7.wrapInner('<span></span>');  
} 
if( $(".slide-4").is(":visible") == true) 
{ 
    var test8 = jQuery("h1,p",".rsts-active"); 
    test8.wrapInner('<span></span>');  
} 

这是我最后的解决方案,但我仍然需要等到“if”,直到元素存在或等待此元素。

我该怎么做?

+0

等到元素添加到DOM或等到它变得可见为止? – 2015-02-24 12:55:19

+0

来自控制台的任何错误消息? – ajtrichards 2015-02-24 12:55:26

+0

我不知道哪一个工作或更好地与可见或在DOM中。滑块位于Rocksolid滑块上。 http://demo.rocksolidthemes.com/contao/tao/你可以测试它。我没有在控制台中的错误=) – Mike 2015-02-24 12:56:45

回答

1

是否有每个滑块一些常见的类?假设它是一个“ce_rsce_tao_feature_box”。添加到$(document).ready()下面的代码:

$('.ce_rsce_tao_feature_box').each(function() { 
    var current_slider = $(this); 
    current_slider.find('h1,p').wrapInner('<span></span>'); 
    current_slider.find('.feature-box-text').wrapInner('<span></span>'); 
}); 
+0

感谢您的工作,但这也不适合我,也许我太笨了,但如果你在sript.js上观看http: //goo.gl/r6pbl0最后一行你会看到我的代码 – Mike 2015-02-24 13:27:23

+0

livequery有错误,你不应该一起尝试所有的答案。在滑块插件初始化后,将我的代码置于$(document).ready()节中,也许这个类名由插件设置。 – 2015-02-24 13:46:26

+0

工作 - 但只有当它在滑块模板=)谢谢! – Mike 2015-02-24 15:05:32

0

如果你想通知一次你的DOM变化,你应该看看Live Query。这个jQuery插件将触发回调时,DOM元素将您的选择匹配:

$('.slide2:visible').livequery(function() { 
    alert("My slide 2 is now visible!"); 
}); 
+0

'$('。slide2:visible')。livequery(function(){ alert(“My slide 2 is now visible!”); });未捕获的DOMException:未能在'Document'上执行'querySelector':'.slide2:visible'不是有效的选择器。当im试图没有:可见'未捕获的类型错误:不能读取''的属性'生活查询' – Mike 2015-02-24 13:06:30

相关问题