本文介绍了JavaScript的:有或无的jQuery改变的onclick的价值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想换一个锚的的onclick 属性的值。我想将其设置为包含JavaScript的一个新的字符串。 (该字符串由服务器提供给客户端的JavaScript code,它可以包含你可以把任何在HTML中的的onclick 属性。)这里有几件事情我想:


  • 使用jQuery ATTR(onclick事件,JS)不与Firefox和IE6 / 7。
  • 工作
  • 使用的setAttribute(onclick事件,JS)适用于Firefox和IE8,而不是IE6 / 7。

  • 使用的onclick =函数(){返回的eval(JS); } 不起作用,因为你不能使用收益是code传递到的eval()

任何人有设置onclick属性,以使这项工作对Firefox和IE 6/7/8有何建议?另请参见下面的code我用来测试这一点。

 < HTML和GT;
    < HEAD>
        <脚本类型=文/ JavaScript的
                SRC =htt​​p://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js>&下; /脚本>
        <脚本类型=文/ JavaScript的>
            $(文件)。就绪(函数(){
                VAR JS =警报('B');返回false;;
                //设置使用jQuery:不工作
                $(A)ATTR(onclick事件,JS)。
                //设置与的setAttribute():至少在Firefox工程
                //document.getElementById(\"anchor\").setAttribute(\"onclick,JS);
            });
        < / SCRIPT>
    < /头>
    <身体GT;
        < A HREF =htt​​p://www.google.com/ID =锚的onclick =警报('A');返回false;>点击< / A>
    < /身体GT;
< / HTML>


解决方案

您不应该使用的onClick 更多,如果你正在使用jQuery。 jQuery提供了自己的连接,并结合事件的方法。请参见

  $(文件)。就绪(函数(){
    VAR JS =警报('B:'+ this.id);返回false;;
    //从JS的字符串创建一个函数
    VAR newclick =新功能(JS);    //清除的onclick然后设置使用jQuery点击
    $(#主播)ATTR('的onclick','')。点击(newclick);
});

这应该取消的onClick 功能 - 并保持你的的JavaScript字符串,以及

做的最好的事情是删除的onclick =< A> 元素在HTML code,然后切换到使用的事件结合的方法点击

您也说:

No - it won't, but onclick = eval("(function(){"+js+"})"); will wrap the 'js' variable in a function enclosure. onclick = new Function(js); works as well and is a little cleaner to read. (note the capital F) -- see documentation on Function() constructors

这篇关于JavaScript的:有或无的jQuery改变的onclick的价值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 17:55