Javascript 如何在单击自动生成的链接时添加属性?
我想在使用jquery自动生成的链接中添加一个属性onClick 我选择父div,然后搜索它是否有链接子级,然后添加属性onClick 它可以在本地主机上工作,但不能在服务器上工作 这是我的代码: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')) {
$('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');
});