内联juqery语法错误

时间:2017-07-07 08:20:39

标签: jquery html

在.php页面内我有一个函数。在该函数中,我的一些代码如下所示: -

$html='';
$html.='<div id="imgContainer"></div>';
$html.='<img  src="elements/18_lr.jpg"  data-highres="elements/18_hr.jpg" onclick="$(this).mbZoomify({screen:'#imgContainer'});">';//<<----shows error near #imgContainer

在上面指定的行中,它显示错误的HTML错误。请告知如何摆脱错误。

3 个答案:

答案 0 :(得分:0)

问题是由于报价不匹配造成的。您需要在对象值中转义',如下所示:

$html.='<img src="elements/18_lr.jpg" data-highres="elements/18_hr.jpg" onclick="$(this).mbZoomify({ screen:\'#imgContainer\' });">';

然而,一个更好的解决方案是完全删除过时且丑陋的on*事件属性,并使用不显眼的事件处理程序。由于您已经在页面中包含了jQuery,因此您可以采用以下方式:

$html.='<img src="elements/18_lr.jpg" data-highres="elements/18_hr.jpg" data-screen="#imgContainer" />';
$('#container img').click(function() {
  $(this).mbZoomify({ 
    screen: $(this).data('screen');
  }); 
});

答案 1 :(得分:0)

有很多方法可以做到这一点,但我个人认为目前最具可读性的是:

$html = <<<'END'
<div id="imgContainer"></div>
  <img src="elements/18_lr.jpg" data-highres="elements/18_hr.jpg" onclick="$(this).mbZoomify({screen:'#imgContainer'});">
END;

无需转义!

答案 2 :(得分:0)

使用后退斜杠&#34; \&#34;

$html='';
$html.='<div id="imgContainer"></div>';
$html.='<img  src="elements/18_lr.jpg"  data-highres="elements/18_hr.jpg" onclick="$(this).mbZoomify({screen:\'#imgContainer\'});">';//<<----shows error near #imgContainer