[英]Uncaught ReferenceError: doIt is not defined at HTMLDivElement.onclick
[英]index.html:1 Uncaught ReferenceError: VARIABLE is not defined at HTMLDivElement.onclick
我試圖將包含HTML標記的jquery選擇器中的HTML文件中的HTML變量傳遞給JavaScript函數。
var $tweeter = $('<div class="tweeter" onClick="userTweet(' + streams.home[index].user + ')"></div>');
其中userTweet()
是鏈接的JavaScript文件中的函數,並且streams.home[index].user
是具有user
, message
和created_at
鍵的用戶對象的數組。 當我單擊div時,出現錯誤
index.html:1 Uncaught ReferenceError: VARIABLE is not defined at HTMLDivElement.onclick
VARIABLE
是streams.home[index]
的user
屬性中的用戶名
如何傳遞此變量以在JavaScript文件中運行該函數? 如果您需要任何進一步的信息,請告訴我。
謝謝!
您的userTweet
在窗口上可用嗎? 如果是的話
$('<div class="tweeter"/>').on('click', function() {
window.userTweet(streams.home[index].user)
})
您是單引號(')和雙引號(“)的受害者。
當你嘗試去做
var $tweeter = $('<div class="tweeter" onClick="userTweet(' + streams.home[index].user + ')"></div>');
// For Simplicity assuming streams.home[index].user value is 'mike'
您的字符串不是您期望的。
這是形成的字符串:
<div class="tweeter" onClick="userTweet(mike)"></div>
// Note mike is not a value but as a variable here
這是您期望的:
<div class="tweeter" onClick="userTweet('mike')"></div>
// Note 'mike' is value here
因此,當您調用userTweet
您傳遞了一個不存在的變量mike
和此錯誤。
這兩個調用的區別是userTweet(mike)
和userTweet('mike')
。 第一次調用mike
是可變的(根據您的情況),而第二個mike
是一個值。
建議您在javascript中的字符串和反引號上關注此鏈接,因為這可以解決您的問題。
也只是這樣做
var $tweeter = $(`<div class="tweeter" onClick="userTweet(' ${streams.home[index].user} ')"></div>`);
// If on older version and new JavaScript is not supported then
var $tweeter = $('<div class="tweeter" onClick="userTweet(' + "'" + streams.home[index].user + "'" + ')"></div>');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.