2016-01-11 38 views
0

我知道这个问题已被问到数千次,但我似乎无法弄清楚我的问题。我只需要再看一眼就可以看到我做错了什么或者我错过了什么。点击jQuery没有触发

这里是我的代码:

<div class="image-container"> 
    @foreach (var image in Model) 
    { 
    <a href="#" class="returnImage" data-url="@Request.Url.GetLeftPart(UriPartial.Authority)@image.Url"> 
     <img src="@image.Url" id="UploadImage" data-source="@image.Url" width="200" height="200"> 
    </a> 
    } 
</div> 

<script> 
    $(document).ready(function() { 
    $("div.image-container").on("click", ".returnImage", function(e) { 
     var urlImage = $(this).attr("data-url"); 
     window.opener.updateValue("cke_72_textInput", urlImage); 
     window.close(); 
    }); 
    }); 
</script> 

调试与萤火显示没有错误,当我把一个断点上“点击”功能,这是从来没有打/永远不会触发。我在这里错过了什么?

+0

您是否尝试过在功能附加一个'alert'框以验证它是否是发射或不? – kojow7

+0

除了结果之外,你还有什么?我不知道你用于车把的是什么样的框架。 – Ivan

+0

如果你不明白你的**客户端代码中发生了什么**请不要看你的**服务器端代码** – Amit

回答

0

可能发生的事情是<a>当您点击它们时,标记优先,抑制您对div.image-container元素的点击事件。

如果您打算让用户单击整个容器本身,请尝试为模型中的每个图像使用除<a>标签之外的其他内容。

如果您是在把一个单击处理程序上的每个<a>标记您的div.image-container内打算,你的jQuery事件行应该是这样,而不是:

$("div.image-container a").click(function(e) { 
+1

或者在超级小心的情况下,您可以使用.preventDefault()例程函数对其进行缓冲。 –

+0

感谢您的回答!不幸的是,这也不起作用。我认为他们可能是导致此问题的其他项目中的其他问题。 – Quiver

0

试试这个:

$(".returnImage").on("click", function(e) { 
    //whatever action code 
}); 
0

凡为没有任何信息可以触发,可能是因为弹出窗口阻止程序认为您的脚本正在尝试插入浏览器并因此阻止它,尤其是因为它是一个包含功能的锚定标记会触发浏览器解释的默认链接行为。下面的代码是你的一个.preventDefault()行为例程添加,以防万一这是问题。编辑:更新编码更准确地针对您想要的DOM元素(如其他答案所建议的)。

preventDefault API

$(document).ready(function() { 
    $(".returnImage").on("click", function(e) { 
     e.preventDefault(); 
     var urlImage = $(this).attr("data-url"); 
     window.opener.updateValue("cke_72_textInput", urlImage); 
     window.close(); 
    }); 
    }); 
+0

感谢您的回答!不幸的是,这也不起作用。我认为他们可能是导致此问题的其他项目中的其他问题。我也从来不知道'preventDefault()'做了什么,所以谢谢你的信息! – Quiver