2017-07-27 33 views
-1

我有這樣的jQuery代碼,但是當我點擊圖片分享,它不工作。 我打錯了單引號?語法錯誤jquery單引用

的onClick = 「window.plugins.socialsharing.share( '+ my_var +')」

var my_var=""; 
my_var="Hello World"; 

$('#info_detail').append('<table border="0"><tr><td><img src="favourite.png" onClick=" 
     set_favorit('+employee.info_id+')"></td><td><img src="share.png" onClick=" 
     window.plugins.socialsharing.share('+my_var+')"></td></tr></table>'); 

謝謝

回答

2

問題是因爲my_var是一個字符串,因此你需要用它在輸出中的轉義引號中。

$('#info_detail').append('<table border="0"><tr><td><img src="favourite.png" onClick=" 
    set_favorit(\'' + employee.info_id + '\')"></td><td><img src="share.png" onClick=" 
    window.plugins.socialsharing.share(\'' + my_var + '\')"></td></tr></table>'); 

你應該注意的,就是on*事件屬性是非常過時,應該有利於不顯眼的事件處理程序被刪除,而不是像這樣:

$('#info_detail').append('<table border="0"><tr><td><img src="favourite.png" data-info-id="' + employee.info_id + '" class="favorit" /></td><td><img src="share.png" data-share="' + my_var + '" class="share"></td></tr></table>'); 

$('#info_detail').on('click', '.favorit', function() { 
    set_favorit($(this).data('info-id')); 
}).on('click', '.share', function() { 
    window.plugins.socialsharing.share($(this).data('share')); 
}); 
+0

'( 「 '+ my_var +'」)'仍然與來自onclick屬性引號干涉。 它應該是'(\''+ my_var +'\')'。 –

+0

@SvenTheSurfer是一個有點noob是不是!謝謝你告訴我。 –

+0

謝謝你們兩位Rory和Sven ..(\''+ my_var +'\')現在正在工作 – Def

0
同樣可能對 employee.info_id值太真

您的共享圖像的onClick呈現不正確。

onClick="window.plugins.socialsharing.share('+my_var+')" 

my_var = "Hello World"成爲

onClick="window.plugins.socialsharing.share(Hello World)" 

這不僅是無效的,因爲空間的,而且還因爲它沒有被傳遞到作爲一個字符串,你可以假設。這可以通過將單引號添加到my_var = "'Hello World'"來解決。在HTML本身之外添加點擊處理程序也可能會更好。

0

var my_var="Hello World", 
 
    employee = 'demo'; 
 

 
$('#info_detail').append('<table border="0"><tr><td><img src="favourite.png" data-info-id="' + set_favorit(employee) + '" class="favorit" /></td><td><img src="share.png" data-share="' + myVar(my_var) + '" class="share"></td></tr></table>'); 
 

 
function set_favorit(a) { 
 
console.log(a) 
 
} 
 

 
function myVar(b) { 
 
console.log(b) 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 

 
<div id="info_detail"></div>

由於我沒有那個窗口的功能,我增加了一些自定義函數。好心檢查。

0

嘗試從聲明中刪除兩個單引號我嘗試運行代碼,刪除它在我的結尾工作的引號。

這是代碼。

var my_var=""; 

my_var =「Hello World」;

變種僱員= { info_id:10 }

$('#info_detail').append('<table border="1"><tr><td><img src="favourite.png" onClick="set_favorit('+employee.info_id+')"></td><td><img src="share.png" onClick="alert(my_var)"></td></tr></table>'); 
+0

這會導致my_var被點擊時評估,這可能不是OP的意圖。 –

+0

我們希望my_var的值正確嗎? –

+0

可能,但是如果您追加這些行並且想要,例如,每個單擊時都有唯一的輸出,則僅使用該變量將不起作用。他們都會有相同的輸出。 –