Javascript语法错误
上面的代码生成tds onclick事件侦听器。生成的代码如下所示Javascript语法错误,javascript,syntax-error,Javascript,Syntax Error,上面的代码生成tds onclick事件侦听器。生成的代码如下所示 var dayNumberCell = doc.createElement('td'); dayNumberCell.className = 'days_link'; dayNumberCell.setAttribute('onclick', function(scope) { var bindScope = function
var dayNumberCell = doc.createElement('td');
dayNumberCell.className = 'days_link';
dayNumberCell.setAttribute('onclick', function(scope) {
var bindScope = function() {
scope.changeDate(this, this.id);
scope.returnDate(scope.month, scope.year);
};
return bindScope;
}(this));
15
通过单击TD,我得到语法错误消息。
如何编写指定代码执行且没有语法错误的函数
提前感谢。您将函数定义放入字符串文本中。它需要代码,它只有文本。您应该按照如下方式重写onclick处理程序:
<td class="days_link" onclick="function () {
scope.changeDate(this, this.id);
scope.returnDate(scope.month, scope.year);
}">15</td>
我不明白为什么要尝试从外部js文件设置内联单击处理程序。您采取了正确的步骤从html中删除内联单击处理程序,但是当您从外部脚本设置单击处理程序时,不应该设置onclick属性
除了我突出显示的方式外,还可以使用w3c和microsoft事件处理程序,以便将多个onclick事件附加到同一元素。然而,这是一种更复杂的方法,因为不同的浏览器处理它的方式不同。只要您不打算将其他onclick处理程序附加到同一单元格,这就足够了。15
dayNumberCell.onclick = function(e) {
var target = e.target || e.srcElement;
target.changeDate(target, target.id);
target.returnDate(target.month, target.year);
return false;
};
你试过功能以外的吗
<td class="days_link" onclick="function () {
scope.changeDate(this, this.id);
scope.returnDate(scope.month, scope.year);}">15</td>
15
如果这不起作用,请在您的javascript文件上尝试它,是的,还有一个函数。也许您不希望使用任何javascript库,但我强烈建议使用YUI事件实用程序来实现这一点。 达斯汀·迪亚兹(Dustin Diaz)有一篇很棒的文章,解释了它将如何为您简化这一过程
<td class="days_link" onclick="scope.changeDate(this, this.id);scope.returnDate(scope.month, scope.year);">15</td>