Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Javascript替换鼠标移动时的所有href元素_Javascript_Jquery_Html_Sharepoint_Sharepoint 2010 - Fatal编程技术网

如何用Javascript替换鼠标移动时的所有href元素

如何用Javascript替换鼠标移动时的所有href元素,javascript,jquery,html,sharepoint,sharepoint-2010,Javascript,Jquery,Html,Sharepoint,Sharepoint 2010,我想将所有href=“javascript:void(0)”替换为href=”http://google.com“whenmouseover使用Javascript和jQuery编辑图像caladd.gif 摘要:这意味着无论何时鼠标在图像上,它都会触发Javascript或jQuery将href更改为另一个链接 HTML: <div id="AsynchronousViewDefault_CalendarView"> <div class="ms-acal-header"&g

我想将所有
href=“javascript:void(0)”替换为
href=”http://google.com“
whenmouseover使用Javascript和jQuery编辑图像caladd.gif

摘要:这意味着无论何时鼠标在图像上,它都会触发Javascript或jQuery将href更改为另一个链接

HTML:

<div id="AsynchronousViewDefault_CalendarView">
<div class="ms-acal-header">
<div>
    <table class="ms-acal-month">
    </table>
    <div class="ms-acal-vlink">
        <table>
            <tbody>
                <tr>
                    <td><a href="javascript:void(0)" title="Add" evtid="new_item">
                        <img border="0" src="/_layouts/images/caladd.gif">Add</a></td>
                </tr>
            </tbody>
        </table>
    </div>
</div>
$(document).ready(function () {
        var abc = $("#AsynchronousViewDefault_CalendarView").find('a[title="Add"][evtid="new_item"]').hover(
          function () {
              $(this).attr('href', 'http://share/Lists/Calendar.aspx?P=P1');
          }
        );
    });

指定方法的主要问题是,当事件处理程序绑定到
mouseover
JavaScript事件时,日历视图尚未生成

建议您看看另一种方法,您可以自定义日历控件的行为和属性,而不是修改日历的DOM

如何自定义日历新项目链接
sp.ui.applicationpages.calendar.js
中定义了新项目链接的呈现模板:

<a evtid=\"new_item\" title=\"{1}\" href=\"javascript:void(0)\"/><span class=\"ms-addcolumn-span\"><img class=\"ms-addcolumn-icon\" border=\"0\" src=\"{2}\"/></span>{0}</a>
用法:

  • 在日历页上添加CEWP
  • 将指定的JavaScript代码插入
    Content
    属性
注:已在SharePoint 2013中测试


在这里很好用:它对我也很有效。您是否有可能与JS或iframe行为冲突的插件?@skzryzg,***@Anton:这在我的SharePoint中不起作用。。。
function setNewItemUrl(url)
{
   //get New Item template      
   var newItemTemplate = SP.UI.ApplicationPages.CalendarVirtualItem.prototype.$7l_0;
   //override template
   SP.UI.ApplicationPages.CalendarVirtualItem.prototype.$7l_0 = newItemTemplate.replace('javascript:void(0)',url);
}

function registerAddItemLink() 
{           
   setNewItemUrl('https://www.google.com/calendar/render');
}
ExecuteOrDelayUntilScriptLoaded(registerAddItemLink,"SP.UI.ApplicationPages.Calendar.js");