2015-02-24 33 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

相關問題