我有一个点击功能,它在下面给出
$('.page-nav li').click(function(event){
console.log("clickedTab-page-nav-first-before set ="+Session.get('clickedTab'));
Session.set('clickedTab',event.target.id);
//var sel = event.prevUntil("[class*=active]").andSelf();
var sel = $(this).prevUntil("[class*=active]").andSelf(); //find all previous li
//of li which have
//class=active
sel = sel.add(sel.eq(0).prev()); // include the that li also(Now all li elements).
sel.removeClass('active'); //Remove the active.
//sel = event.nextUntil("[class*=active]").andSelf(); //Also for top to bottom
//(Viceversa)
sel = $(this).nextUntil("[class*=active]").andSelf();
sel = sel.add(sel.eq(-1).next());
sel.removeClass('active');
//event.addClass('active');
$(this).addClass('active'); //Now add class active for the clicked li
var rightcontent="";
console.log("clickedTab-page-nav-second-after set = "+Session.get('clickedTab'));
switch($(this).attr('id')){
case 'rfq':
.......
.....
}
});
接下来是我想从另一个地方调用这个点击功能
$(document).ready(function() {
console.log("clickedTab-page load = "+Session.get('clickedTab'));
if(Session.get('clickedTab')!=null||Session.get('clickedTab')!= undefined){
alert("Got It");
//$('.page-nav li').click(event);
$('.page-nav li').click(); //this is not working
}
});
现在的问题是,如果条件不起作用,页面点击功能。然而,我收到了警报。非常感谢您的帮助。提前感谢。。。
您并没有在函数中真正使用event
参数,并且您声明希望在事件链之外调用它,以便将其更改为常规函数
var setupClicktab = function(id){
console.log("clickedTab-page-nav-first-before set ="+Session.get('clickedTab'));
Session.set('clickedTab',id);
...
}
你会像这样使用它:
$('.page-nav li').click(function(event){return setupClicktab(event.target.id);});
和文档准备
setupClicktab.Call($('.page-nav li'),Session.get('clickedTab'));
后一个调用类它在选择的上下文中(也就是说,这个函数内部将引用选择(1)。它还将存储在会话变量中的值作为id传递。
旁注。您的测试
if(Session.get('clickedTab')!=null||Session.get('clickedTab')!= undefined)
可能只是
if(Session.get('clickedTab'))
除非在该变量中存储空字符串、零或布尔值false。但看到它是如何使用的,这是不太可能的,因为它们都是id属性的无效值
(1) 这与引用DOM元素的点击事件略有不同)
您需要将$('.page-nav li').click(function(event){
放在document.ready
内部,并将放在您的$('.page-nav li').click();
之前。因为如果在DOM未就绪时调用.click
,则可能没有附加事件处理程序
如果您不将$('.page-nav li').click(function(event){
放在document.ready
中,或者您正在处理动态创建的元素。您需要委托事件$(document).on("click",".page-nav li",function(event){
上的$.起