jQuery点击不启动
jQuery on click not firing
我知道这个问题已经被问了数千次,但我似乎无法解决我的问题。我只需要重新审视一下,看看我做错了什么或错过了什么。
这是我的代码:
<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>
使用FireBug进行调试不会显示任何错误,当我在"点击"函数上设置断点时,它永远不会被命中/永远不会被激发。我在这里错过了什么?
可能发生的情况是,当您单击<a>
标记时,它们具有优先权,从而抑制了div.image-container
元素的单击事件。
如果您打算让用户单击整个容器本身,请尝试为模型中的每个图像使用除<a>
标记之外的其他标记。
如果您打算在div.image-container
中的每个<a>
标记上放置一个点击处理程序,那么jQuery事件行应该是这样的:
$("div.image-container a").click(function(e) {
试试这个:
$(".returnImage").on("click", function(e) {
//whatever action code
});
由于什么都没有启动,可能是您的弹出窗口阻止程序认为您的脚本试图劫持您的浏览器,因此正在阻止它,特别是因为它是一个<a>
锚定标记,包含了会触发浏览器解释的默认链接行为的功能。下面的代码是添加了.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();
});
});
相关文章:
- 重新启动jquery脚本后,角度停止工作
- 在运行时启动jquery-ui.toggleSwitch.js切换开关
- 在Safari 9中的后退按钮后启动JQuery/Javascript
- 如何暂停和重新启动jquery数据表插件
- 页面加载时启动 jquery 函数
- 重新启动 Jquery setInterval 并重置所有 var
- 如何在用户可视化页面点时启动 jQuery 效果
- 如何基于下拉选择启动jQuery对话框
- 延迟mousedown间隔启动(JQuery/Javascript)
- 循环结束后重新启动jQuery.ech()
- 对动态插入的文本字符串启动jQuery
- 为什么我的ASP.NET按钮控件没有启动JQuery对话框
- 单击按钮时启动jQuery Modal未加载
- 重新启动jquery动画
- 在没有回调的情况下在ajax加载后启动jQuery脚本
- ajax后重新启动jquery插件,导致事件多次触发
- 用Ajax生成的链接启动JQuery对话框
- 从另一个JS函数中启动jQuery .datepicker
- 使用phonegap/cordova点击android原生菜单按钮启动jquery移动面板菜单
- 目标是在回发时启动jQuery AJAX POST的相同控件