在我的代码中,当我用.live
替换.on
时,它不起作用?我无法确定问题。
$(document).ready(function () {
/* Reading the data from XML file*/
$.ajax({
type: "GET",
url: "photos.xml",
dataType: "xml",
success: function (xml) {
$(xml).find('item').each(function () {
var path = $(this).attr('path');
var width = $(this).attr('width');
var height = $(this).attr('height');
var id = $(this).attr('id');
var alt = $(this).attr('alt');
var longdesc = $(this).find('longdesc').text();
var description = $(this).find('desc').text();
$('#myImageFlow').append('<img src="' + path + '" id=' + id + ' height="' + height + '" width="' + width + '" longdesc="' + longdesc + '" alt="' + alt + '"/>');
imgArr[i] = description;
imgFront[i] = longdesc;
i = i + 1;
});
$(xml).promise().done(function () {
console.log("image completed loading");
$('img:lt(4)').removeClass('t2').addClass('t1');
$('img:gt(3)').removeClass('t1').addClass('t2');
$('img#id12').removeClass('t1').addClass('t2');
$('img#id1').removeClass();
//alert('Front Initial Text is'+imgFront[1]);
window.setTimeout(function () {
$("#front").html(imgFront[1]);
$("#front").css("background", "gray");
}, 1500);
});
}
});
$.getScript('js/code.photoswipe.jquery-3.0.5.js');
});
/*front div called when front or back is called */
$('#front').live('click', function (event) {
event.stopPropagation();
transitIt(this);
// alert('Front Clicked glob e='+globe);
});
$('#myImageFlow img').on("click", function () {
event.stopPropagation();
alert('htmlcalled image Clicked Called=' + clickEnabled);
});
答案 0 :(得分:1)
试试这个:
$('body').on('click', '#myImageFlow img', function() {
// your code
});
参考文献:
.on()
- jQuery API文档答案 1 :(得分:1)
您的代表团可能没有正确定义:
$('#myImageFlow').on("click", 'img', function(event) {
event.stopPropagation();
alert('htmlcalled image Clicked Called=' + clickEnabled);
});
假设未从DOM中删除#myImageFlow
,则它是事件委派的良好候选者。此外,您在点击处理程序中缺少event
参数。
答案 2 :(得分:1)
试试这个 -
$('#myImageFlow').on("click", "img", function(event)
{
event.stopPropagation();
alert('htmlcalled image Clicked Called='+clickEnabled);
});
或
$('html').on("click", "#myImageFlow img", function(event)
{
event.stopPropagation();
alert('htmlcalled image Clicked Called='+clickEnabled);
});
答案 3 :(得分:0)
控制台窗口的任何输出?
注意到你缺少.on的(事件)。
除此之外,on函数使用冒泡来使其工作。因此,使用从一开始就存在的DOM树的一部分,并将您想要的dom树的子项放在括号中。
委托事件方法仅将事件处理程序附加到一个元素tbody和&gt;事件只需要冒出一个级别(从点击的tr到tbody):
$("#dataTable tbody").on("click", "tr", function(event){
alert($(this).text());
});