boilerPalte.activityStream =
                            "<div class='socvid-aspect-ratio-container'>"+
                                "<div onclick='com.ivb.module.home.pics.showDialogBox(\"{%=nodeId%}\",\"{%=classNameId%}\")'>"+
                                    "<a href = {%=centerUrl%}>"+
                                    "<img src='{%=imageUrl%}'>"+
                                    "</a>"+
                                "</div>"+
                            "</div>";


我希望在单击div并同时使用a href时执行showDialogBox函数。在上面的代码中,onclick无效,只有href有效。
我希望发生一个ajax请求(大概实际上成功了),然后让浏览器继续前进并定位到anchor标签中指定的链接

最佳答案

这将为您工作:

com.ivb.module.home.pics.showDialogBox = function(nodeId, classNameId, obj) {

    // something ...

    var href = $(obj).find('a').data('href');
    makeAjaxRequest().success(function() {
        location.href = href;
    });
};


HTML:

 <div onclick='com.ivb.module.home.pics.showDialogBox(\"{%=nodeId%}\",\"{%=classNameId%}\", this)'>
     <a data-href={%=centerUrl%}>
         <img src='{%=imageUrl%}'>
     </a>
 </div>


使用data-href而不是href,您无需阻止链接上的默认事件。如果要使用href,请确保在此链接上为e.preventDefault

09-11 01:46
查看更多