2017-07-27 31 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

可能,但是如果您追加这些行并且想要,例如,每个单击时都有唯一的输出,则仅使用该变量将不起作用。他们都会有相同的输出。 –