Javascript 检测href单击
好的,我已经尝试了几天,想弄清楚如何检测用户点击,并为变量分配新属性。我尝试了几种不同的方法,但大多数都不起作用 到目前为止,我有这个,这是相当自我解释Javascript 检测href单击,javascript,jquery,Javascript,Jquery,好的,我已经尝试了几天,想弄清楚如何检测用户点击,并为变量分配新属性。我尝试了几种不同的方法,但大多数都不起作用 到目前为止,我有这个,这是相当自我解释 var settings = { objSlideTrigger: '#one', // link button id objSlidePanel: '#content-one' // slide div class or id }; if(document.getElementById('#one').cli
var settings = {
objSlideTrigger: '#one', // link button id
objSlidePanel: '#content-one' // slide div class or id
};
if(document.getElementById('#one').click) {
var setup = settings;
setup.objSlideTrigger = '#one',
setup.objSlidePanel = '#content-one'
};
if(document.getElementById('#two').click) {
var setup = settings;
setup.objSlideTrigger = '#two',
setup.objSlidePanel = '#content-two'
};
当用户单击页面上的href时,我希望javascript能够检测到它,并将正确的设置放在settings变量中,供其余代码使用。
我有两个问题,第一个问题是,我必须将条件语句至少复制十次,因此无论如何都要压缩/简化代码
其次,在javascript中检测到Href click时,我是否必须为html中的实际元素指定onclick值
再次感谢 使用jQuery
假设您希望使用jQuery,因为您已将其包含在顶部,请使用:
$(document).on('click', '#one', function( event ) {
//Do Code here
//For #one click event
});
不过,为了防止干燥,请使用类使其更通用:
<div class="updatesettings" id="one">One</a>
<div class="updatesettings" id="two">Two</a>
<script>
$(document).on('click', '.updatesettings', function( event ) {
//Do Code here
//For all .updatesettings click event
alert( $(this).attr('id') );
});
</script>
然后要侦听多个,请按类使用(尽管并非所有IE版本都可以侦听):
var waitiedclickevent=function(){
//类单击
}
var WaitingClick=document.getElementsByClassName('clickme');
对于(变量i=0;i
你的解决方案
一个
两个
/**
*获取单击的元素的ID
*它是存储的数据内容字符串。
**/
$('.updatesettings')。在('单击')上,函数(事件){
var Id=$(this.attr('Id'),
Content=$(this).data('Content'),
设置=设置,
setup.objSlideTrigger=Id,
setup.objSlidePenl=内容;
控制台日志(设置);
});
$(document).ready(function(){}
然后使用document.getElmentById('')。单击“
”?:oThanks为了指出这一点,我在编辑时忘了删除它。你说的是元素吗?不能单击hrefs,可以单击(锚定)元素具有href属性您的编辑很奇怪,您是使用jQUery还是纯JavaScript?是的,我指的是“锚定标记”,我将它们称为href。这与要求的不完全一样,有几个元素可能类似于#1、#2、.................#10个单击处理程序each@BeaniiejQuery是JavaScript,因此您可以同时使用这两种语言总的来说,只有一些事情需要考虑,比如不尝试访问jQuery对象上的本机元素属性。例如,$('#checked')不能这样做.checked
以查看ID为checked的复选框元素是否已实际选中。我会的,谢谢你们的输入。你们已经解释了为什么我在过去5-6天里一无所获……:)我使用了
,因为
没有预期的浏览器行为,与
不同的是,它们会将您带到另一个页面,因此您必须使用JavaScript来防止这种情况。使用
或
将允许您完全控制单击它时要执行的操作,例如您的示例-updatesetup
变量。将其添加到click活页夹的开头,查找任何带有'out'
类的类,并告诉它回家=)
var OnOneClick = function() {
// Your click handler
};
var OneClick = document.getElementsById("#one");
OneClick.addEventListener('click', OnOneClick, false);
var AwaitedClickEvent = function() {
//Class Click
}
var WaitingClick = document.getElementsByClassName('clickme');
for (var i = 0; i < WaitingClick.length; i++) {
var current = WaitingClick[i];
current.addEventListener('click', AwaitedClickEvent, false);
}
<!-- Links with ID & Content -->
<div class="updatesettings" id="one" data-content="content-one">One</a>
<div class="updatesettings" id="two" data-content="content-two">Two</a>
<script>
/**
* Get the clicked element's ID
* and it's stored data-content string.
**/
$('.updatesettings').on('click', function( event ) {
var Id = $(this).attr('id'),
Content = $(this).data('content'),
setup = settings,
setup.objSlideTrigger = Id,
setup.objSlidePenl = Content;
console.log( setup );
});
</script>