jQuery - 动态设置的onclick事件仅适用于Firefox

时间:2011-12-01 20:46:14

标签: jquery

不要问为什么;我只需要这样做: - )

我有以下代码动态填充已经有css按钮的div。该按钮的属性在此过程中动态更改。它在FF中运行良好,但不适用于IE或Chrome:

<div id="home_panel_text" class="divNextClass"></div>
<div id="home_panel_bottom">
     <a class="aViewNextClass" id="" href="##"><span>View</span></a>
</div>

function loadNextClass() {
        var v_object_type = "ajax";
        var v_onclick = 'return hs.expand(this)';
        var v_onclick2 = 'return hs.htmlExpand(this,{objectType:"ajax"})';
        var x = '<table border="0" cellspacing="0" cellpadding="3">';
        $.getJSON("/components/system.cfc?method=getNextClass&returnformat=json&queryformat=column",{},function(res,code) {
            if(res.ROWCOUNT == 1){
                x += '<tr><td><strong>Class</strong></td><td>' + res.DATA.TITLE + '</td></tr>'
                x += '<tr><td nowrap><strong>When</strong></td><td>' + res.DATA.STARTDATE + ' ' + res.DATA.STARTTIME + '-' + res.DATA.ENDTIME + '</td></tr>'
                x += '<tr><td nowrap><strong>Cost</strong></td><td>$' + res.DATA.PRICE + '</td></tr>';
                $('.aViewNextClass').attr({
                   "id":res.DATA.STOREITEMID,
                   "href":"class_detail.cfm?id=" + res.DATA.STOREITEMID,
                   "onclick":v_onclick2
                 }).addClass('highslide');
            }else{
                x += '<tr><td colspan="2">No classes found</td></tr>';
            }
            x += '</table>'
            $('.divNextClass').html(x); 
        });
    }


$(function() {
    loadNextClass();
})

在Chrome中,生成的按钮链接如下所示:

<a class="aViewNextClass highslide" id="14" href="class_detail.cfm?id=14"><span>View</span></a>

即。它缺少高滑动的onclick属性。

在FF中,链接看起来很好:

<a href="class_detail.cfm?id=14" id="14" class="aViewNextClass highslide " onclick="return hs.htmlExpand(this,{objectType:&quot;ajax&quot;})"><span>View</span></a>

任何帮助找出原因都会受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

改变这个:

 $('.aViewNextClass').attr({
                   "id":res.DATA.STOREITEMID,
                   "href":"class_detail.cfm?id=" + res.DATA.STOREITEMID,
                   "onclick":v_onclick2
                 }).addClass('highslide');

到此:

 $('.aViewNextClass').attr({
                   "id":res.DATA.STOREITEMID,
                   "href":"class_detail.cfm?id=" + res.DATA.STOREITEMID
                 }).addClass('highslide').click(v_onclick2)