当我向其参数列表提供字符串时,JavaScript事件处理函数不起作用

时间:2011-03-09 17:24:28

标签: javascript

我试图将变量“image”传递给onclick事件处理函数。当“image”变量类似于“1111”时它可以工作,但是当我像“11sfrl”那样给它一些字符串值或者只是没有数字字符的纯字符串时,就不会调用事件处理函数。我试图将它包装在参数列表上的双引号但没有帮助。

image="ssss";
element4 = $('<div id="elem'+element.id+'" style="position:absolute;width:38px;height:24px;left:123px;margin:2px;border-width:1px;border-style:solid;border-color:red;" onclick="deletefromcart(this.id,'+image+');"></div>').appendTo(element);

2 个答案:

答案 0 :(得分:2)

我建议使用jQuery函数,而不是使用长字符串HTML:

element4 = $('<div id="elem' + element.id + '" />')
    .css({
        position: 'absolute',
        width: '38px',
        height: '24px',
        left: '123px',
        margin: '2px',
        borderWidth: '1px',
        borderStyle: 'solid',
        borderColor: 'red'
    })
    .click(function(){
        deletefromcart(this.id, image);
    })
    .appendTo(element);

这比构造字符串更可靠。

答案 1 :(得分:1)

这是因为'onclick="deletefromcart(this.id,'+image+');">'变为:onclick="deletefromcart(this.id,IMAGEURL);">。你可能想要:

onclick="deletefromcart(this.id,\''+image+'\');"