2016-09-28 78 views
1

當彈出鏈接在<script>標籤之間時,它不起作用。彈出式窗口不能在Javascript中工作

if(data.userdata["money_back"] == 1){ 
chat_list += '<a data-popup-open="popup-90">Download</a>'; 
} 

我推 當它是<body>標籤,它工作正常

<body><a data-popup-open="popup-90">Download</a></body> 

是否「數據彈出打開」不<script>標籤之間的工作之間?

下面是基本上我想要做的jsfiddle:
http://www.jsfiddle.net/tkkpf9dp

+0

你是使用'a'標籤。這是一個HTML元素,它只能用作標記,而不是腳本。爲了讓它在你的腳本中工作,你需要將它附加到'body'或另一個元素上。 –

+0

對不起,如果我不清楚。我沒有試圖將'a'標籤作爲腳本運行。它正在使用JavaScript顯示在用戶的頁面上。問題是,當你點擊它時什麼都不會發生。 –

+0

陷阱。我不能完全重現這個問題。你介意創建一個簡單的小提琴嗎? –

回答

0

類似的東西?

var popup = '<a data-popup-open="popup-90">Download</a>'; 
document.body.innerHTML += popup; 
+0

var popup ='Download'; document.body.innerHTML + = popup; – Shaq

+0

這就是我正在做的,但它不起作用。當你使用innerHTML顯示它時,它不起作用,但是如果你把它放在它所做的'

0

我認爲問題出在事件處理上。應該打開彈出窗口的事件可能不會觸發。這是因爲你正在創建一個動態DOM元素。動態元素的事件處理工作方式不同。如果您在使用jQuery,你可以根據需要使用這樣的

只是一類「彈出」添加到「一」的標籤這樣

<a class="popup" data-popup-open="popup-90">Download</a> 

,並在JavaScript

$('body').on('click','.popup',function() { 

    var popup = $(this).data('popup-open'); 
    console.log(popup); // For this example you will get the output 'popup-90' in the console 
    // You can write the code to open the pop up here 
}); 
+0

有關動態元素的事件處理的更多詳細信息,請參閱http://stackoverflow.com/questions/6658752/click-event-doesnt-work-on-dynamically-generated-elements –

+0

謝謝!我正在檢查鏈接。與此同時,這裏基本上是我試圖做的事情。如果我將該類添加到下載鏈接中,則會引發錯誤。 –

+0

您已經在使用'popup'類作爲div。並將其顯示屬性設置爲none。所以請給'a'標籤另一個班。確保你在JS中改變了這個也 –