Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 愚蠢的问题_Javascript_Jquery_Escaping - Fatal编程技术网

Javascript 愚蠢的问题

Javascript 愚蠢的问题,javascript,jquery,escaping,Javascript,Jquery,Escaping,我知道这应该是最基本的,但为了我的生命 eventMouseover: function(calEvent, domEvent) { if (typeof calEvent.id != 'undefined'){ var layer = "<div id='events-layer' class='fc-transparent' style='position:absolute; width:100%; height:100%; top:-1px; text-ali

我知道这应该是最基本的,但为了我的生命

eventMouseover: function(calEvent, domEvent) {
    if (typeof calEvent.id != 'undefined'){
        var layer = "<div id='events-layer' class='fc-transparent' style='position:absolute; width:100%; height:100%; top:-1px; text-align:right; z-index:100'> <a> <img border='0' style='padding-right:5px;' src='/icon_note_delete.png' width='16' onClick='deleteEvent("+calEvent.id+");'></a></div>";
        $(this).append(layer);
    }
}
因为id将是一个字符串而不是一个数字,所以我需要引用它

就像它给我的一样

onClick="deleteEvent(e_1984_2_184_668)"
但我需要

onClick="deleteEvent('e_1984_2_184_668')"
我试过了

onClick='deleteEvent(\'"+calEvent.id+"\');
但它也不起作用。我知道这是我错过的愚蠢的事情,但我非常感激帮助

试试看:

 ... onClick='deleteEvent('" + calEvent.id + "'); ...

您应该使用双引号括住
calEvent.id
,因为它位于单引号字符串中:

var layer = "<div id='events-layer' class='fc-transparent' style='position:absolute; width:100%; height:100%; top:-1px; text-align:right; z-index:100'> <a> <img border='0' style='padding-right:5px;' src='/icon_note_delete.png' width='16' onClick='deleteEvent(\""+calEvent.id+"\");'></a></div>";
var-layer=”“;
但是,在我看来,如果您使用一系列jQuery调用来创建HTML,则更容易阅读:

var layer = $('<div></div>').attr('id', 'events-layer')
                .addClass('fc-transparent')
                .css({
                    position: 'absolute',
                    width: '100%',
                    height: '100%',
                    top: '-1px',
                    textAlign: 'right',
                    zIndex: '100'
                })
                .appendTo(this);

var anchor = $('<a></a>').appendTo(layer);

var img = $('<img>').attr('border', '0')
                    .attr('src', '/icon_note_delete.png')
                    .attr('width', '16')
                    .css({
                        paddingRight: '5px'                        
                    })
                    .click(function() { deleteEvent(calEvent.id); })
                    .appendTo(anchor);
var-layer=$('').attr('id','events-layer')
.addClass('fc-transparent')
.css({
位置:'绝对',
宽度:“100%”,
高度:“100%”,
顶部:'-1px',
textAlign:'右',
zIndex:“100”
})
.附于(本);
var-anchor=$('').appendTo(层);

var img=$('将单引号和双引号翻转()可能更容易:

var calEventId='testid';
var层=“”;
警报(层);

然后您可以对单引号进行转义,得到的HTML字符串看起来更像您在日常标记中看到的HTML(属性值周围的双引号,JavaScript中的单引号)。

您似乎正在使用jQuery。我建议使用jQuery创建元素:

$('<div />', {
     id: 'events-layer',
     'class': 'fc-transparent someClass',
}).append(
    $('<a />', {
         href: '<you need an href attribute>',
    }).append('<img />', {
        'class': 'someOtherClass',
        src: '/icon_note_delete.png',
        width: '16',
        click: function() {
            deleteEvent(calEvent.id);
        }
    })
).appendTo(this);

我试过了,结果引号都搞乱了!谢谢!!我想我认为onclick=“deleteEvent”(“e9884_2_127_561”)“不会正常工作,因为我总是尝试将参数放在与调用不同的引号类型中,但即使看起来很奇怪,它也能正常工作。再次感谢
var calEventId = 'testid';

var layer = '<div id="events-layer" class="fc-transparent" style="position:absolute; width:100%; height:100%; top:-1px; text-align:right; z-index:100"> <a> <img border="0" style="padding-right:5px;" src="/icon_note_delete.png" width="16" onClick="deleteEvent(\'' + calEventId + '\');"></a></div>';

alert(layer);
$('<div />', {
     id: 'events-layer',
     'class': 'fc-transparent someClass',
}).append(
    $('<a />', {
         href: '<you need an href attribute>',
    }).append('<img />', {
        'class': 'someOtherClass',
        src: '/icon_note_delete.png',
        width: '16',
        click: function() {
            deleteEvent(calEvent.id);
        }
    })
).appendTo(this);
.someClass {
    position:absolute; 
    width:100%; 
    height:100%; 
    top:-1px; 
    text-align:right; 
    z-index:100
} 

.someOtherClass {
    border: none;
    padding-right:5px;
    width: 16px;
}