0

我有一个页面xyz.jsp在页面加载时有一个脚本并且它工作正常。

  function loginRegOverlay() {
           $("#hiddenLoginButton").click();
         };

但是如果我abc.jsp在 jquery.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();
    }; 

如果我在 abc.jsp 上调用它,它在 xyz.jsp 中不能正常工作。我希望它现在清楚。

4

3 回答 3

0

尝试使用 . 触发

$("#hiddenLoginButton").trigger('click');

我们假设您在页面加载时调用了函数 loginRegOverlay()

而且我注意到您在 xyz.jsp 中编写了代码,并且您想在 abc.jsp 上触发它,然后在 abc.jsp 中包含该 xyz.jsp

inlcude('xyz.jsp');

并且请确保这些按钮 id 是唯一的,因为 xyz 在 abc 上加载,并且由于 id 重复,它们将无法工作,您可以给它们相同的类并一次性触发

于 2013-05-22T06:20:29.450 回答
0

.load()是一个 ajax 请求,因此如果您从其他页面加载元素,那么将事件直接绑定到该元素将不起作用。因此,解决方法是事件委托,您必须将事件委托给从其他页面加载 html 的现有父项。

$(document).find('#hiddenLoginButton').click();

您可以将其委托给页面加载时可用的最近的父级:

$('#ID or .Class of the parent item').find('#hiddenLoginButton').click();

喜欢:

$('#wrapper').find('#hiddenLoginButton').click();

边注:

如果您能够发布一些呈现的 html,那么最好看看发生了什么以及建议什么来克服这个问题。

于 2013-05-22T06:30:35.503 回答
0

您可以使用 .live 或 .on 方法进行事件委托

$("#hiddenLoginButton").live('click', function(){});
于 2013-05-22T06:53:06.727 回答