Javascript Jquery:。单击()不工作

Javascript Jquery:。单击()不工作,javascript,jquery,Javascript,Jquery,我在我的php文件上有一个链接,当有一个事件监听器连接到它时,单击同一页面上的另一个链接 <p>Upload the image you want on your cake:<a href="#" id="upload-button" class="button">Upload</a> </p> <a href="#openModal" id="upload-link"></a> <div id="openModa

我在我的php文件上有一个链接,当有一个事件监听器连接到它时,单击同一页面上的另一个链接

 <p>Upload the image you want on your cake:<a href="#" id="upload-button" class="button">Upload</a> </p>

<a href="#openModal" id="upload-link"></a>
<div id="openModal" class="modalDialog">
    <div><a href="#close" title="Close" class="close">X</a>
        <?php require 'image-upload.php'; ?>
    </div>
</div>

    <script>
        $('#upload-button').on('click', function () {//This works fine
            $('#upload-link')[0].click(); //This doesn't work.
        });`

    </script>
上传您想要的蛋糕图像:

$(“#上传按钮”)。在('click',函数(){//这可以正常工作 $(“#上载链接”)[0]。单击();//这不起作用。 });`
现在点击事件应该点击上传链接,然后弹出一个模式。但是,什么都没有发生。原因和解决方案是什么?

这对我来说很有效。但是,(仅供参考),id不应包含连字符

注意:我只是在#openModal上使用内联HTML事件处理程序来显示其单击事件正在被触发,但您尚未向该链接添加任何操作,否则它将不会执行任何操作。在实践中不要使用内联HTML事件处理程序

$(函数(){
$('#uploadButton')。在('单击',函数(){
警报(“已单击上载按钮”);
$('#uploadLink')。触发器(“单击”);
});
});

上传您想要的蛋糕图像:


将jQuery添加到HTML中,方法是

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

您的标识符语法也应该始终相同。所有的camelCase或所有的i-not-know-how-this-case都被调用。

我不知道为什么以前它不工作,但当我对上传按钮链接做了一些更改时。一切正常,模式弹出得很好

<p>Upload the image you want on your cake:<a href="javascript: void(0)" id="upload-button" class="button">Upload</a> </p>
上传您想要的蛋糕图像:


我刚刚将href从
#
更改为
javascript:void(0)
,一切正常。

您是否在
按钮上定义了单击事件?$(“#上载链接”)。单击();等于$('#upload link')。在(“click”,函数)上侦听click事件,而不是单击本身<代码>$(“#上传链接”)。触发(“单击”)
你应该用这种方式处理触发器click事件本身不是一个事件,而('click')上的('click')也是这样做的吗?你最好阅读jQuery文档以便更好地理解。我们看不到你的.php文件产生了什么,所以,这是我能测试的范围。你能从.php中发布生成的代码吗?那只是重复了一些内容。仅此而已。@TanviMalhotra第二次点击不起作用的原因是因为你让它点击了一个超链接,而这个超链接没有设置为去任何地方或做任何事情。那么我该怎么做?为了打开模式?这并不是像我们几个人那样的奇怪反应我们说过。您的(和我的)代码确实会触发超链接的单击,但是您显示的超链接
没有任何
href
可以将您带到任何地方,除了将页面的该部分滚动到视图中。如果有其他事情发生在您身上,那是因为您拥有的代码比您告诉我们和向我们展示的代码要多,因为仅此代码无法“打开模式对话框”。也许是自举?看看我的编辑。另外,如果用HTML替换php,代码也会成功显示。php文件不包含HTML代码。这应该不是问题,对吧?不应该,但如果你知道php没有碍事,它可以帮助调试。正如我所说的,没有模式会弹出,因为您声明了您的div,而没有隐藏或显示它:它只是一个包含一些php的空白div,没有任何样式。你不能期望太多。顺便说一句,如果你没有显示所有的代码,没有人会帮助你。
<p>Upload the image you want on your cake:<a href="javascript: void(0)" id="upload-button" class="button">Upload</a> </p>