我已经建立了自己的灯箱,而且工作得很好。我建立了自己的,因为我需要它没有框架,并且在我建造的游戏中也能很好地工作。但是,我遇到了一个问题,我相当肯定这很简单,但对我来说却相当令人烦恼。我遇到的问题是参数" slideName"并将其传递给" fillRightButton()"功能。
var createSlidebox = function(cancelButton, bannerImg, slideName) {
fillRightButton("nextSlide",slideName);
};

这是该功能的一部分:
var fillRightButton = function(rightButtonType, rightDestination) {
if (rightButtonType === "nextSlide") {
document.getElementById("lightbox_fright").innerHTML = '<a onclick="changeSlide(' + rightDestination + ')">Next</a>';
}
}
&#13;
&#34; fillRightButton()&#34;函数在直接调用时执行正常,如果直接输入参数,此代码可以正常工作:
var createSlidebox = function(cancelButton, bannerImg, slideName) {
fillRightButton("nextSlide", "mySlideName");
};
&#13;
但是,如果没有引号,它会呈现为:
<a onclick="changeSlide([object Object])">Next</a>
&#13;
带有&#34;未捕获的SyntaxError:意外的标识符&#34; JS错误。我该如何解决这个问题?谢谢!
答案 0 :(得分:0)
使用data属性在函数调用
中使用jQuery存储对象var fillRightButton = function(rightButtonType, rightDestination) {
if (rightButtonType === "nextSlide") {
document.getElementById("lightbox_fright").innerHTML = '';
// document.getElementById("lightbox_fright").innerHTML = '<a onclick="changeSlide( $(this).data('dest') )">Next</a>';
var a = document.createElement('a');
a['data-dest'] = rightDestination;
a.onclick=function(){changeSlide( this['data-dest']); }
a.innerHTML = 'Next';
document.getElementById("lightbox_fright").appendChild(a);
//document.getElementById('lightbox_fright > a').data({'dest':rightDestination});
}
}
使用jQuery(如果尚未包含)
PS更新w / o jQuery请试一试让我知道它是否有效,推荐使用jQuery