如何添加一个属性onClick oto我自动生成的链接?

时间:2014-03-18 12:56:33

标签: javascript jquery html

我想在使用jquery自动生成的链接上添加一个属性onClick。

我选择父div,然后搜索它是否有链接子项,然后添加属性onClick。

它适用于localhost但不适用于服务器 有我的代码:

$('div.holder_notify_drop_data,li.holder_notify_drop_data').each(function () {
    if ($(this).children('a').hasClass('holder_notify_drop_link')) {
        $(this).on('click', function (e) {
            var url = $(this).children('a').attr('href');
            $(this).children('a').attr('onClick', "openFrame('" + url + "','yes')");
            e.preventDefault();
        });
    };)
};

我该怎么做?

3 个答案:

答案 0 :(得分:0)

确保包含jQuery:

<script src="http://code.jquery.com/jquery-latest.js"></script>

重要提示:还要将您的代码放在文档就绪函数中,我建议您使用jQuery click()函数而不是您已经完成的方式,但这没关系:

$(document).ready(function () {

$('div.holder_notify_drop_data,li.holder_notify_drop_data').each(function(){
if ($(this).children('a').hasClass('holder_notify_drop_link')){
$(this).on('click',function(e) {
var url = $(this).children('a').attr('href');
$(this).children('a').attr('onClick',"openFrame('"+url+"','yes')");
  e.preventDefault();
});
};
)};

});

答案 1 :(得分:0)

这是一个工作示例http://jsfiddle.net/g248G/

HTML:

<div class="holder_notify_drop_data">
    <a class="holder_notify_drop_link" 
       href="http://stackoverflow.com">Stackoverflow.com</a>
</div>
<ul>
    <li class="holder_notify_drop_data">
        <a class="holder_notify_drop_link"
           href="http://google.com">Google.com</a>
    </li>
</ul>

使用Javascript:

function openFrame(URL, option) {
    window.open(URL);
}

$(document).ready(function() {

    $('div.holder_notify_drop_data,li.holder_notify_drop_data').each(function() {
        $(this).children('a').each(function() {
            var $link = $(this);
            if ($link.hasClass('holder_notify_drop_link')) {
                var URL = $link.attr('href');
                $link.on('click', function(event) {
                    event.preventDefault();
                    openFrame(URL, 'yes');
                });
            }
        });
    });

});

答案 2 :(得分:0)

为什么不使用jQuery.on()呢?

这会将点击功能绑定到a容器中holder_notify_drop_data的所有当前和未来元素。

$('.holder_notify_drop_data').on('click', 'a', function (ev) {
    ev.preventDefault();

    openFrame($(this).prop('href'), 'yes');
});