我有一个页面xyz.jsp
,它在页面加载时有一个脚本,并且工作正常。
function loginRegOverlay() {
$("#hiddenLoginButton").click();
};
但如果我在jquery abc.jsp
页面上的.load
上调用此页面正在渲染但
$("#hiddenLoginButton").click(); is not working.
不知道为什么不来。
请告诉我它正在加载xyz.jsp但是如果我在abc.jsp上调用那个页面它不能正常工作
添加abc.jsp中的代码:
function newstyle(){
$("#test").load("xyz.jsp");
};
所以,newstyle在abc.HTML上调用onload渲染很好但是
function loginRegOverlay() {
$("#hiddenLoginButton").click();
};
在xyz.jsp中工作正常,如果我在abc.jsp上调用它,我现在希望它清楚。
答案 0 :(得分:0)
尝试。触发器,如
$("#hiddenLoginButton").trigger('click');
我们假设您在页面加载时调用了函数loginRegOverlay()
我注意到你在xyz.jsp中编写了代码,你想在abc.jsp上触发它然后在abc.jsp中包含xyz.jsp
inlcude('xyz.jsp');
和plz确保那些按钮id是唯一的,因为xyz是abc上的加载,并且由于id中的重复它们不能工作,你可以给它们同一个类并将其解雇为
答案 1 :(得分:0)
.load()
是一个ajax请求,所以如果你从其他页面加载元素,那么直接将事件绑定到元素将不起作用。因此,解决方法是事件委派,您必须将事件委托给从其他页面加载html的现有父项。
$(document).find('#hiddenLoginButton').click();
您可以将其委托给页面加载时可用的最近父级:
$('#ID or .Class of the parent item').find('#hiddenLoginButton').click();
像:
$('#wrapper').find('#hiddenLoginButton').click();
旁注:
如果你能发布一些渲染的html,那么看看会发生什么以及建议克服这个问题会好得多。
答案 2 :(得分:0)
您可以使用.live或.on方法进行事件委派
$("#hiddenLoginButton").live('click', function(){});