奇怪的Javascript行为

奇怪的Javascript行为,javascript,Javascript,我使用JQuery附加图像,如下所示: $('#event_list_main').append('<img class="listed_event" id="event_'+event_counter+'" data-count="'+event_counter+'" src="final_tutorial_buttons/event.png" height="50" width="50" onclick="highlight();" />'); “此”部分似乎不起作用。我希望它

我使用JQuery附加图像,如下所示:

$('#event_list_main').append('<img class="listed_event" id="event_'+event_counter+'" data-count="'+event_counter+'" src="final_tutorial_buttons/event.png" height="50" width="50" onclick="highlight();" />');
“此”部分似乎不起作用。我希望它指的是创建的每个事件

例如,如果我创建了3个事件

事件1 事件2 事件3

我点击“图像事件2”,然后“此”必须指“图像事件2”

尝试
onclick=“highlight.call(this);”

但是,正确地附加事件处理程序将更加简洁:

var img = $('<img class="listed_event" id="event_'+event_counter+'" data-count="'+event_counter+'" src="final_tutorial_buttons/event.png" height="50" width="50" />');
img.on('click', highlight);
$('#event_list_main').append(img);
var img=$('');
图像打开(“点击”,突出显示);
$('#事件列表_main')。追加(img);
或者更具可读性:

var img = $('<img/>', {
    'class': 'listed_event',
    id: 'event_' + event_counter,
    src: 'final_tutorial_buttons/event.png'
}).height(50).width(50).data('count', event_counter).on('click', highlight);
$('#event_list_main').append(img);
var img=$('Try
onclick=“highlight.call(this);”

但是,正确地附加事件处理程序将更加简洁:

var img = $('<img class="listed_event" id="event_'+event_counter+'" data-count="'+event_counter+'" src="final_tutorial_buttons/event.png" height="50" width="50" />');
img.on('click', highlight);
$('#event_list_main').append(img);
var img=$('');
图像打开(“点击”,突出显示);
$('#事件列表_main')。追加(img);
或者更具可读性:

var img = $('<img/>', {
    'class': 'listed_event',
    id: 'event_' + event_counter,
    src: 'final_tutorial_buttons/event.png'
}).height(50).width(50).data('count', event_counter).on('click', highlight);
$('#event_list_main').append(img);

var img=$('这不是意外的行为,您没有传递
这个
值。但是您期望它,因为jQuery会自动为您传递

这是一个简单的解决方案:

$('#event_list_main').append('<img class="listed_event" id="event_'+event_counter+'" data-count="'+event_counter+'" src="final_tutorial_buttons/event.png" height="50" width="50" onclick="highlight.call(this);" />');
$('event#list_main').append('');
尽管最好将其全部替换为:

$('<img class="listed_event" id="event_' +
     event_counter + '" data-count="' +
     event_counter + '" src="final_tutorial_buttons/event.png" height="50" width="50" />')
     .click(highlight).appendTo("#event_list_main");
$(“”)
。单击(突出显示)。添加到(“事件列表主”);

有关如何调用()
apply()
this
的更多信息,请参阅帖子。这不是意外行为,您没有传递
this
值。但您希望这样做,因为jQuery会自动为您传递该值

这是一个简单的解决方案:

$('#event_list_main').append('<img class="listed_event" id="event_'+event_counter+'" data-count="'+event_counter+'" src="final_tutorial_buttons/event.png" height="50" width="50" onclick="highlight.call(this);" />');
$('event#list_main').append('');
尽管最好将其全部替换为:

$('<img class="listed_event" id="event_' +
     event_counter + '" data-count="' +
     event_counter + '" src="final_tutorial_buttons/event.png" height="50" width="50" />')
     .click(highlight).appendTo("#event_list_main");
$(“”)
。单击(突出显示)。添加到(“事件列表主”);

请参阅POST以获得更多关于“代码> CALL())/代码>、“代码> Apple())/<代码>和<代码> > > /P>您能确认“代码>突出显示< /代码>是一个全局函数吗?事件到<代码> ''事件'ListTyMa'元素……你能确认<代码>突出> <代码>是一个全局函数吗?也可以考虑将“点击”事件委托给(')。当然,在几行上。使用模板会更干净。这样会更干净:
var img=$(')。当然,在几行上。使用模板会更干净。