2013-07-15 93 views
4

好吧,我已經處理了這個問題幾天了,而且我發現我無法在引導程序彈出窗口中觸發任何事件。我甚至試圖觸發一個alert(),它什麼都不做。無法觸發引導程序中彈出窗口內的任何JavaScript事件

我有一個彈出式按鈕,裏面有一個按鈕。當你點擊按鈕時,它上面的文字會改變。任何幫助? ​​。謝謝。

回答

7

正如Michael在他的回答中指出的那樣,在點擊鏈接之前,popover元素不存在於HTML中。所以click處理程序不能附加到它,直到點擊鏈接之後。所以,你可以移動單擊處理成酥料餅的電話,或使用jQuery的on委託,像這樣:

$('.location').on('click','.text-btn',function() { 
    alert('What\'s going on!'); 
    //$('.text-btn').toggle(); 
}); 

看到fiddle

這項工作這裏做的事情是:它附加一個單擊類別爲location的元素的處理程序。當此元素內的任何內容被點擊(例如text-btn元素)時,事件會冒泡並觸發此處理程序。但是,on處理程序僅偵聽由特定元素觸發的事件(在本例中爲具有text-btn類的元素)。由於處理程序連接到.location元素,並且此元素是非動態的,所以它始終可用。

+0

幹得好。 '.on'的大量使用. –

+0

使用.on像魅力一樣工作。 – iboros

2

問題是你正在一個不存在的節點上分配一個事件偵聽。如果你看一下,當你點擊Fire popover會生成以下HTML所生成的HTML:

<div class="popover-content"> 
    <button class="btn text-btn">Toggle me!</button> 
    <button class="btn text-btn toggle-text">Un-Tobble me</button> 
</div> 

的是,經過你的聽衆代碼運行在該文件此產生的問題 - 因此也無監聽你的按鈕。

希望別人可以告訴你如何添加監聽器,因爲我無法弄清楚。

相關問題