2 qq 21741673 qq_21741673 于 2016.01.22 16:26 提问

关于阻止点击冒泡事件(webapp apicloud)
 // 用于链接到公用页面
    var toDetail = function(obj){

        var url = $api.attr(obj,'data-url');
        var title = $api.attr(obj,'data-title');

        api.execScript({
            name: 'root',
            script: 'indexToDetail("'+title+'","'+url+'")'
        });
        event.cancelBubble = true;
        event.preventDefault = true;
    };

我写了静态页面取点击没有问题,可是当我动态拼接字符串时又没用了,总是父元素触发事件。

 <li id="goods_li" data-title="外面" data-url="http://www.baidu.com" onclick="toDetail(this)">
                <img data-title="图片点击" data-url="http://www.baidu.com" onclick="toDetail(this)" src="../../image/comment_u.png"/>
                <div class="info">
                    <span class="gooName">商品名</span>
                    <div class="gooPrice">商品价格</div>
                </div>
            </li>

在线等,Q:315895718

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.01.22 16:36
 var toDetail = function(obj,event){

        var url = $api.attr(obj,'data-url');
        var title = $api.attr(obj,'data-title');

        api.execScript({
            name: 'root',
            script: 'indexToDetail("'+title+'","'+url+'")'
        });
        event.stopPropagation();
        event.preventDefault();
    };
        ===调用
        onclick="toDetail(this,event)
qq_21741673
qq_21741673 报错了,,,,Cannot read property 'stopPropagation' of undefined at xxxx
接近 2 年之前 回复
showbo
showbo   Ds   Rxr 2016.01.22 16:37

注意时间的传递,ie8-的event存储在window中,标准浏览器不是

  <li id="goods_li" data-title="外面" data-url="http://www.baidu.com" onclick="toDetail(this,event)">
                <img data-title="图片点击" data-url="http://www.baidu.com" onclick="toDetail(this,event)" src="../../image/comment_u.png"/>
var toDetail = function(obj,event){

    var url = $api.attr(obj,'data-url');
    var title = $api.attr(obj,'data-title');

    api.execScript({
        name: 'root',
        script: 'indexToDetail("'+title+'","'+url+'")'
    });
    event.cancelBubble = true;
    if(event.preventDefault)event.preventDefault()/// = true;//preventDefault是方法,不是属性,而且注意标准浏览器才有此方法
};
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!