Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击自动生成的链接时添加属性?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何在单击自动生成的链接时添加属性?

Javascript 如何在单击自动生成的链接时添加属性?,javascript,jquery,html,Javascript,Jquery,Html,我想在使用jquery自动生成的链接中添加一个属性onClick 我选择父div,然后搜索它是否有链接子级,然后添加属性onClick 它可以在本地主机上工作,但不能在服务器上工作 这是我的代码: $('div.holder_notify_drop_data,li.holder_notify_drop_data').each(function () { if ($(this).children('a').hasClass('holder_notify_drop_link')) {

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

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

它可以在本地主机上工作,但不能在服务器上工作 这是我的代码:

$('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();
        });
    };)
};

我如何才能做到这一点?

请确保包含jQuery:

<script src="http://code.jquery.com/jquery-latest.js"></script>
这里有一个有效的例子

HTML:

为什么不用它呢

这将把点击功能绑定到
holder\u notify\u drop\u data
容器中
a
的所有当前和未来元素

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

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

闻起来像是跨域请求。:)使用“执行与代码第3行相同的操作”。我使用了事件委派,但它不适用于server@Mohamed:不,你不是。至少在你发布的代码中没有。您正在迭代元素列表,并将处理程序附加到每个元素。“这与事件委派不同。”穆罕默德:好的。可以尝试用jQuery click()函数替换click事件并重试吗?例如:$('#someId')。单击(function(){//code});并将其嵌套在文档“就绪”下
<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>
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');
                });
            }
        });
    });

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

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