0

我有一个使用 onclick fct 的按钮:

<input type="button" onclick="document.location = 'mylocation.html';"  class="button urlToMainDiv" value="Back">

我想使用 jQuery(基于使用的类)捕获被调用的 url,以便能够使用 jQuery.load 代替。

我尝试了很多选择器,但我无法捕捉到被调用的 url。

像这个 :

jQuery(".urlToMainDiv input").click(function(e){     
     e.preventDefault(); 
    load_ajax_content(this.href,divId,1);       
}); 

任何 id 或解决方案?

谢谢你的帮助。


也许我错过了一些东西,但只需调用一个自定义函数onclick

<input type="button" onclick="doLoad('mylocation.html'); return false;"  class="button urlToMainDiv" value="Back">

function doLoad(url){
    // now use jQuery load
}

如果您无法修改 HTML,只需覆盖onclick

$('input.urlToMainDiv').attr('onclick', "doLoad('mylocation.html')");
4

3 回答 3

2
$('input.button').each(function() {
    var $this = $(this),
        url = $this.attr('onclick').split('=')[1];
    $this.removeAttr('onclick').data('url', url);
}).on('click', function(e) {
    $('#div').load( $(this).data('url') );
});

http://jsfiddle.net/Rttjs/

于 2013-05-15T22:10:54.057 回答
1

您无法阻止 jQuery 中的本机 onclick 处理程序,您必须将其删除以确保按钮不会重定向,并且在删除它之前,您必须获取 URL,然后在load()函数,像这样:

var url = $('.urlToMainDiv').attr('onclick');
$('.urlToMainDiv').attr('onclick', '');  // removes the onclick function

$('.button').on('click', function(e) {
    e.preventDefault();
    url = url.split("'")[1];
    $('#elementId').load(url);
}); 

小提琴

于 2013-05-15T22:03:48.907 回答
0

也许我错过了一些东西,但只需调用一个自定义函数onclick

<input type="button" onclick="doLoad('mylocation.html'); return false;"  class="button urlToMainDiv" value="Back">

function doLoad(url){
    // now use jQuery load
}

如果您无法修改 HTML,只需覆盖onclick

$('input.urlToMainDiv').attr('onclick', "doLoad('mylocation.html')");
于 2013-05-15T22:01:05.487 回答